Count the bytes in a multibyte character
#include <stdlib.h> int mblen( const char * s, size_t n );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The mblen() function counts the number of bytes in the multibyte character pointed to by s, to a maximum of n bytes.
The mbrlen() function is a restartable version of mblen().
#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; }
This produces the output:
Character encodings do not have state-dependent encoding. Multibyte char 's'(1)
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
mbrlen(), mbrtowc(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc()