Latest web development tutorials

funzioni di libreria C - wctomb ()

C libreria standard - <stdlib.h> C libreria standard - <stdlib.h>

descrizione

funzioni di libreria Cint wctomb (char * str, wchar_t wchar) wcharl'ampio carattere nella sua rappresentazione multibyte e lo memorizza all'inizio di puntiSTRper un array di caratteri.

dichiarazione

Ecco () funzione di dichiarazione wctomb.

int wctomb(char *str, wchar_t wchar)

parametri

  • str - un puntatore a una matrice sufficientemente grande per memorizzare i caratteri multi-byte.
  • wchar - tipo wchar_t carattere esteso.

Valore di ritorno

  • Se str non è NULL, wctomb () restituisce il numero di byte scritti per l'array di byte. Se wchar non può essere rappresentato come una sequenza multi-byte, restituisce -1.
  • Se str è NULL, se l'encoder ha uno stato di spostamento, la funzione wctomb () restituisce diverso da zero se la codifica è senza stato, restituisce zero.

Esempi

L'esempio seguente mostra viene utilizzata la funzione 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);
}

Facciamo compilare ed eseguire il programma di cui sopra, che si tradurrà in quanto segue:

要转换的宽字符:
被转换的字符:1
多字节字符:a
当要转换的字符为 NULL 时尝试转换:
被转换的字符:0
多字节字符:

C libreria standard - <stdlib.h> C libreria standard - <stdlib.h>