Latest web development tutorials

Funkcje biblioteczne C - wctomb ()

Biblioteka standardowa języka C - <stdlib.h> Biblioteka standardowa języka C - <stdlib.h>

opis

Funkcje biblioteki Cint wctomb (char * str, wchar_t wchar) wcharszerokiego znaku do jego wielobajtową reprezentacji i zapisuje go na początkuSTRpunkty do tablicy znaków.

oświadczenie

Oto () Funkcja stwierdzenie wctomb.

int wctomb(char *str, wchar_t wchar)

parametry

  • str - wskaźnik do tablicy na tyle duże, aby przechowywać znaki wielobajtowe.
  • wchar - typ wchar_t szerokości znaków.

Wartość zwracana

  • Jeśli str nie jest NULL, wctomb () zwraca liczbę bajtów zapisanych do tablicy bajtów. Jeśli wchar nie mogą być reprezentowane jako sekwencja wiele bajtów, zwraca 1.
  • Jeśli str NULL, jeśli koder ma stan przesunięty, funkcja wctomb () zwraca wartość różną od zera gdy kodowanie jest bezpaństwowcem, zwraca zero.

Przykłady

Poniższy przykład demonstruje wctomb function () jest używana.

#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);
}

Załóżmy, skompilować i uruchomić powyższy program, który spowoduje w następujących przypadkach:

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

Biblioteka standardowa języka C - <stdlib.h> Biblioteka standardowa języka C - <stdlib.h>