_mbclen, mblen, _mblen_l

Получает длину и определяет допустимость символов многобайтовой.

Важное примечаниеВажно

Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW.

size_t _mbclen(
   const unsigned char *c 
);
int mblen(
   const char *mbstr,
   size_t count 
);
int _mblen_l(
   const char *mbstr,
   size_t count,
   _locale_t locale
);

Параметры

  • c
    Многобайтовых.

  • mbstr
    Адрес последовательности байт многобайтовой кодировки.

  • count
    Число байтов для проверки.

  • locale
    Языковой стандарт, который необходимо использовать.

Возвращаемое значение

_mbclen возвращает 1 или 2, согласно, если символ c многобайтовой 1 или 2 байта текста.Без возврата ошибок для _mbclen.Если параметр mbstr не является NULL, то mblen возвращает длину в байтах, символов многобайтовой.Если mbstr имеет значение NULL или оно указывает на нулю-символу юникод, то mblen возвращает значение 0.Если объект, на который указывает mbstr не принимают форму допустимый многобайтовых в первые символы count, mblen ), то возвращает 1.

Заметки

Функция _mbclen возвращает длину в байтах, многобайтовых знаков c.Если c не указывает на старшему байту символов многобайтовой заданное неявных вызовом _ismbblead, результат _mbclen невозможно с точностью предсказать.

mblen возвращает значение mbstr, если длина в байтах допустимый многобайтовых и определяет допустимость многобайтовой кодировки, связанной с кодовой страницей.mblen задает count или меньшее число байтов, содержащихся в mbstr, но не превышает MB_CUR_MAX байтов.

Выходное значение зависеть на параметром параметра категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale.Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта.Для получения дополнительной информации см. Языковой стандарт.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

Не указаны _UNICODE и _MBCS

определенные _MBCS

Определение _UNICODE

_tclen

Сопоставления макросу или встроенной функции

_mbclen

Сопоставления макросу или встроенной функции

Требования

Функция

Требуемый заголовок

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

// crt_mblen.c
/* illustrates the behavior of the mblen function
 */

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int      i;
    char    *pmbc = (char *)malloc( sizeof( char ) );
    wchar_t  wc   = L'a';

    printf( "Convert wide character to multibyte character:\n" );
    wctomb_s( &i, pmbc, sizeof(char), wc );
    printf( "  Characters converted: %u\n", i );
    printf( "  Multibyte character: %x\n\n", *pmbc );

    i = mblen( pmbc, MB_CUR_MAX );
    printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );

    pmbc = NULL;
    i = mblen( pmbc, MB_CUR_MAX );
    printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}

Output

Convert wide character to multibyte character:
  Characters converted: 1
  Multibyte character: 61

Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Классификацию символов

Языковой стандарт

Интерпретация последовательностей многобайтового символов

_mbccpy, _mbccpy_l

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l