Fonction de bibliothèque C - mbstowcs ()

La description

La fonction de bibliothèque C size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) convertit la chaîne de caractères multi-octets pointée, par l'argument str au tableau pointé par pwcs.

Déclaration

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

size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

Paramètres

  • pwcs - Il s'agit du pointeur vers un tableau d'éléments wchar_t suffisamment long pour stocker une large chaîne de caractères max.

  • str - Il s'agit de la chaîne de caractères multi-octets C à interpréter.

  • n - C'est le nombre maximum de caractères wchar_t à interpréter.

Valeur de retour

Cette fonction renvoie le nombre de caractères traduits, à l'exclusion du caractère nul de fin. Si un caractère multi-octets non valide est rencontré, une valeur -1 est renvoyée.

Exemple

L'exemple suivant montre l'utilisation de la fonction mbstowcs ().

#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);
   
   printf("Converting back to Wide-Character string\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first wide character %#.4x\n\n", pwcs);
   
   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: 0x19a60010
Converting back to Wide-Character string
Characters converted 1
Hex value of first wide character 0x19a60030