Функции библиотеки C -mblen()
Стандартная библиотека C - <stdlib.h>
Описание
Функции библиотеки Cint mblen(const char *str, size_t n)Возвращаемый параметрstrДлина многобайтового символа, на который указывает.
Объявление
Ниже приведено объявление функции mblen().
int mblen(const char *str, size_t n)
Параметр
- str-- Указатель на первый байт многобайтового символа.
- n-- Максимальное количество байтов для проверки длины символа.
Возвращаемое значение
Если распознан ненулевой широкий символ, функция mblen() возвращает количество байтов, разобранных из многобайтовой последовательности, начинающейся с str. Если распознан нулевой широкий символ, она возвращает 0. Если распознана недопустимая многобайтовая последовательность или полный многобайтовый символ не может быть разобран, она возвращает -1.
Пример
Следующий пример демонстрирует использование функции mblen().
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int len;
char *pmbnull = NULL;
char *pmb = (char *)malloc( MB_CUR_MAX );
wchar_t *pwc = L"Hi";
wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));
printf("转换为多字节字符串\n");
len = wcstombs( pmb, pwc, MB_CUR_MAX);
printf("被转换的字符 %d\n", len);
printf("第一个多字节字符的十六进制值:%#.4x\n", pmb);
len = mblen( pmb, MB_CUR_MAX );
printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
pmb = NULL;
len = mblen( pmb, MB_CUR_MAX );
printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
return(0);
}
Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:
转换为多字节字符串 被转换的字符 1 第一个多字节字符的十六进制值:0x168c6010 多字节字符 168c6010 的字节长度:1 多字节字符 0 的字节长度:0Другие расширения