Fonction de bibliothèque C - wctomb ()

La description

La fonction de bibliothèque C int wctomb(char *str, wchar_t wchar) la fonction convertit le caractère large wchar à sa représentation multi-octets et le stocke au début du tableau de caractères pointé par str.

Déclaration

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

int wctomb(char *str, wchar_t wchar)

Paramètres

  • str - C'est le pointeur vers un tableau suffisamment grand pour contenir un caractère multi-octets,

  • wchar - C'est le caractère large de type wchar_t.

Valeur de retour

  • Si str n'est pas NULL, la fonction wctomb () renvoie le nombre d'octets qui ont été écrits dans le tableau d'octets à str. Si wchar ne peut pas être représenté comme une séquence multi-octets, -1 est renvoyé.

  • Si str est NULL, la fonction wctomb () renvoie une valeur non nulle si le codage a un état de décalage non trivial, ou zéro si le codage est sans état.

Exemple

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

#include <stdio.h>
#include <stdlib.h>

int main () {
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc(sizeof( char ));

   printf("Converting wide character:\n");
   i = wctomb( pmb, wc );
   printf("Characters converted: %u\n", i);
   printf("Multibyte character: %.1s\n", pmb);

   printf("Trying to convert when target is NULL:\n");
   i = wctomb( pmbnull, wc );
   printf("Characters converted: %u\n", i);
   /* this will not print any value */
   printf("Multibyte character: %.1s\n", pmbnull);
   
   return(0);
}

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

Converting wide character:
Characters converted: 1
Multibyte character: a
Trying to convert when target is NULL:
Characters converted: 0
Multibyte character: