Fonction de bibliothèque C - mblen ()

La description

La fonction de bibliothèque C int mblen(const char *str, size_t n) renvoie la longueur d'un caractère multi-octets pointé par l'argument str.

Déclaration

Voici la déclaration de la fonction mblen ().

int mblen(const char *str, size_t n)

Paramètres

  • str - Il s'agit du pointeur vers le premier octet d'un caractère multi-octets.

  • n - Il s'agit du nombre maximum d'octets à vérifier pour la longueur des caractères.

Valeur de retour

La fonction mblen () retourne le nombre d'octets passés de la séquence multi-octets commençant à str, si un caractère large non nul a été reconnu. Il renvoie 0, si un caractère large nul a été reconnu. Il renvoie -1, si une séquence multi-octets non valide a été rencontrée ou s'il n'a pas pu analyser un caractère multi-octets complet.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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);
}

Compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

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