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: