determine the number of bytes comprising a multibyte character
#include <stdlib.h> int mblen( const char *s, size_t n );
The mblen() function determines the number of bytes comprising the multibyte character pointed to by s. At most n bytes of the array pointed to by s will be examined.
If s is a NULL pointer, the mblen() function returns zero if multibyte character encodings do not have state-dependent encoding, and non-zero otherwise. If s is not a NULL pointer, the mblen() function returns:
mbtowc(), mbstowcs(), wctomb(), wcstombs()
#include <stdio.h>
#include <stdlib.h>
void main()
{
int len;
char *mbs = "string";
printf( "Character encodings do %shave "
"state-dependent \nencoding.\n",
( mblen( NULL, 0 ) )
? "" : "not " );
len = mblen( "string", 6 );
if( len != -1 ) {
mbs[len] = '\0';
printf( "Multibyte char '%s'(%d)\n", mbs, len );
}
}
produces the output:
Character encodings do not have state-dependent encoding. Multibyte char 's'(1)
ANSI
All (except DOS/PM)