Funzione libreria C - mblen ()
Descrizione
La funzione di libreria C. int mblen(const char *str, size_t n) restituisce la lunghezza di un carattere multibyte puntato dall'argomento str.
Dichiarazione
Di seguito è riportata la dichiarazione per la funzione mblen ().
int mblen(const char *str, size_t n)
Parametri
str - Questo è il puntatore al primo byte di un carattere multibyte.
n - Questo è il numero massimo di byte da controllare per la lunghezza dei caratteri.
Valore di ritorno
La funzione mblen () restituisce il numero di byte passati dalla sequenza multibyte a partire da str, se è stato riconosciuto un carattere ampio non nullo. Restituisce 0, se è stato riconosciuto un carattere ampio nullo. Restituisce -1, se è stata rilevata una sequenza multibyte non valida o se non è stato possibile analizzare un carattere multibyte completo.
Esempio
L'esempio seguente mostra l'utilizzo della funzione 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);
}
Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:
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