C ++ wctomb () - biblioteka standardowa C ++

Funkcja wctomb () w C ++ konwertuje znak szeroki na znak wielobajtowy.

Funkcja wctomb () jest zdefiniowana w pliku nagłówkowym.

wctomb () prototyp

 int wctomb (char * pmb, wchar_t wc);

Funkcja wctomb () przyjmuje dwa argumenty i zwraca wartość całkowitą. Ta funkcja konwertuje szeroki znak reprezentowany przez wc na jego wielobajtowy odpowiednik i jest przechowywany w lokalizacji pamięci wskazanej przez pmb. Maksymalna liczba znaków, które można zapisać, to MB_CUR_MAX .

Jeśli wc jest znakiem null, bajt null jest zapisywany do pmb.

Jeśli pmb jest pustym wskaźnikiem, wywołanie wctomb () zresetuje globalny stan konwersji i określi, czy używane są sekwencje przesunięć.

wctomb () Parametry

  • pmb: wskaźnik do wynikowego znaku wielobajtowego
  • wc: znak szeroki, który jest konwertowany na znak wielobajtowy

wctomb () Zwracana wartość

Jeśli pmb nie jest pustym wskaźnikiem, wctomb () zwraca:

  • liczba bajtów zawartych w wielobajtowej reprezentacji wc.
  • -1, jeśli wc nie jest prawidłowym znakiem.

Jeśli pmb jest pustym wskaźnikiem, resetuje swój wewnętrzny stan konwersji, aby reprezentował początkowy stan przesunięcia i zwraca:

  • 0, jeśli bieżące kodowanie wielobajtowe nie jest zależne od stanu (nie używa sekwencji przesunięć)
  • wartość niezerową, jeśli bieżące kodowanie wielobajtowe jest zależne od stanu (wykorzystuje sekwencje przesunięć).

Przykład: Jak działa funkcja wctomb ()?

 #include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )

Po uruchomieniu programu możliwe wyjście to:

 Gdy pmb nie jest zerowe Zwracana wartość = 1 znak wielobajtowy: x↨R Gdy pmb jest równe zeru Wartość zwracana = 0 Znak wielobajtowy:

Interesujące artykuły...