_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.
См. также
Ссылки
Интерпретация последовательностей многобайтового символов
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l