Funciones de la biblioteca C -wctomb()
Biblioteca estándar de C - <stdlib.h>
Descripción
La función de la biblioteca Cint wctomb(char *str, wchar_t wchar)Convierte el carácter anchowchara su representación multibyte y lo almacena enstrel comienzo 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-- Un puntero que apunta a una matriz lo suficientemente grande para almacenar un carácter multibyte.
- wchar-- El carácter ancho de tipo wchar_t.
Valor de retorno
- Si str no es NULL, la función wctomb() devuelve el número de bytes escritos en la matriz de bytes. Si wchar no puede representarse como una secuencia multibyte, devuelve -1.
- Si str es NULL, la función wctomb() devuelve un valor distinto de cero si la codificación tiene estado de desplazamiento, y devuelve cero si la codificación no tiene estado.
Ejemplo
El siguiente ejemplo demuestra 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("要转换的宽字符:\n");
i = wctomb( pmb, wc );
printf("被转换的字符:%u\n", i);
printf("多字节字符:%.1s\n", pmb);
printf("当要转换的字符为 NULL 时尝试转换:\n");
i = wctomb( pmbnull, wc );
printf("被转换的字符:%u\n", i);
/* 不会输出任何值 */
printf("多字节字符:%.1s\n", pmbnull);
return(0);
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
要转换的宽字符: 被转换的字符:1 多字节字符:a 当要转换的字符为 NULL 时尝试转换: 被转换的字符:0 多字节字符:Otras extensiones