Función de biblioteca C - wctomb ()

Descripción

La función de la biblioteca C int wctomb(char *str, wchar_t wchar) función convierte el carácter ancho wchar a su representación multibyte y la almacena al principio de la matriz de caracteres apuntada por str.

Declaración

A continuación se muestra la declaración de la función wctomb ().

int wctomb(char *str, wchar_t wchar)

Parámetros

  • str - Este es el puntero a una matriz lo suficientemente grande como para contener un carácter multibyte,

  • wchar - Este es el carácter ancho de tipo wchar_t.

Valor devuelto

  • Si str no es NULL, la función wctomb () devuelve el número de bytes que se han escrito en la matriz de bytes en str. Si wchar no se puede representar como una secuencia multibyte, se devuelve -1.

  • Si str es NULL, la función wctomb () devuelve un valor distinto de cero si la codificación tiene un estado de cambio no trivial, o cero si la codificación no tiene estado.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

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