La función mblen () en C ++ determina el tamaño (en bytes) de un carácter multibyte.
La función mblen () se define en el archivo de encabezado.
Prototipo mblen () (A partir del estándar C ++ 11)
int mblen (const char * s, size_t max);
La función mblen () toma dos argumentos sy max, y devuelve un valor entero. El puntero s apunta al primer byte de un carácter multibyte cuyo tamaño es devuelto por la función.
Parámetros de mblen ()
- s: puntero al primer byte de un carácter multibyte o un puntero nulo.
- max: número máximo de bytes en s que se pueden examinar.
mblen () Valor de retorno
Si s es un puntero nulo, una llamada a mblen () restablece su estado de conversión interno para representar el estado de cambio inicial y devuelve:
- 0 si la codificación multibyte actual no depende del estado (no usa secuencias de cambio).
- valor distinto de cero si la codificación multibyte actual depende del estado (utiliza secuencias de desplazamiento).
Si s no es un puntero nulo, la función mblen () devuelve:
- el número de bytes contenidos en el carácter multibyte.
- -1 si los primeros bytes señalados por s no forman un carácter multibyte válido.
- 0 si s apunta al carácter nulo ' 0'.
Ejemplo: ¿Cómo funciona la función mblen () en 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; )
Cuando ejecute el programa, la salida será:
Longitud del carácter multibyte: 1