Высчитать количество байт в многобайтовом символе
#include <stdlib.h>int mblen( const char *s,size_t n );
NULL
или указатель на многобайтовый символ.libc
Функция mblen() подсчитывает размер многобайтового символа, начинающегося с s. Максимальный размер символа указывается в аргументе n.
Функция mbrlen() является перезапускаемой версией функции mblen().
NULL
, mblen() определяет, зависит ли кодировка символов от состояния: NULL:
#include <stdio.h>#include <stdlib.h>int main( void ){int len;char *mbs = "string";printf( "Character encodings do " );if ( !mblen( NULL, 0 ) ){printf( "not " );}printf( "have state-dependent \nencoding.\n" );len = mblen( "string", 6 );if ( len != -1 ){mbs[len] = '\0';printf( "Multibyte char '%s'(%d)\n", mbs, len );}return (EXIT_SUCCESS);}
Код генерирует следующий вывод:
$ ./a.out Character encodings do not have state-dependent encoding. Multibyte char 's'(1)
ANSI, POSIX 1003.1
mbrlen(), mbrtowc(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc()
Предыдущий раздел: Описание API системной библиотеки