Función de biblioteca C - mblen ()
Descripción
La función de la biblioteca C int mblen(const char *str, size_t n) devuelve la longitud de un carácter multibyte al que apunta, por el argumento str.
Declaración
A continuación se muestra la declaración de la función mblen ().
int mblen(const char *str, size_t n)
Parámetros
str - Este es el puntero al primer byte de un carácter multibyte.
n - Este es el número máximo de bytes que se deben verificar para la longitud de los caracteres.
Valor devuelto
La función mblen () devuelve el número de bytes pasados de la secuencia multibyte que comienza en str, si se reconoció un carácter ancho no nulo. Devuelve 0, si se reconoció un carácter ancho nulo. Devuelve -1, si se encontró una secuencia multibyte no válida o si no pudo analizar un carácter multibyte completo.
Ejemplo
El siguiente ejemplo muestra el uso de la función mblen ().
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
int len;
char *pmbnull = NULL;
char *pmb = (char *)malloc( MB_CUR_MAX );
wchar_t *pwc = L"Hi";
wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));
printf("Converting to multibyte string\n");
len = wcstombs( pmb, pwc, MB_CUR_MAX);
printf("Characters converted %d\n", len);
printf("Hex value of first multibyte character: %#.4x\n", pmb);
len = mblen( pmb, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", pmb, len );
pmb = NULL;
len = mblen( pmb, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", pmb, len );
return(0);
}
Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:
Converting to multibyte string
Characters converted 1
Hex value of first multibyte character: 0x168c6010
Length in bytes of multibyte character 168c6010: 1
Length in bytes of multibyte character 0: 0