Funciones de la biblioteca C -wctomb()

C 标准库 - <stdlib.h>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
多字节字符:

C 标准库 - <stdlib.h>Biblioteca estándar de C - <stdlib.h>

Otras extensiones