Функция mblen () в C ++ определяет размер (в байтах) многобайтового символа.
Функция mblen () определена в заголовочном файле.
прототип mblen () (в соответствии со стандартом C ++ 11)
int mblen (const char * s, size_t max);
Функция mblen () принимает два аргумента s и max и возвращает целочисленное значение. Указатель s указывает на первый байт многобайтового символа, размер которого возвращается функцией.
mblen () Параметры
- s: указатель на первый байт многобайтового символа или нулевой указатель.
- max: Максимальное количество байтов в s, которое может быть исследовано.
mblen () Возвращаемое значение
Если s является нулевым указателем, вызов mblen () сбрасывает его внутреннее состояние преобразования для представления начального состояния сдвига и возвращает:
- 0, если текущая многобайтовая кодировка не зависит от состояния (не использует последовательности сдвига).
- ненулевое значение, если текущая многобайтовая кодировка зависит от состояния (использует последовательности сдвига).
Если s не является нулевым указателем, функция mblen () возвращает:
- количество байтов, содержащихся в многобайтовом символе.
- -1, если первые байты, на которые указывает s, не образуют допустимый многобайтовый символ.
- 0, если s указывает на нулевой символ ' 0'.
Пример: как функция mblen () работает в C ++?
#include #include #include using namespace std; int main() ( int len; char *s = (char *)malloc(20); strcpy(s,"xe4xbdxa0xe5xa5xbd"); /* resets the conversion state */ mblen(NULL, 0); len = mblen(s,strlen(s)); cout << "Length of multibyte character: " << len << endl; return 0; )
Когда вы запустите программу, вывод будет:
Длина многобайтового символа: 1