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