C ++ wcrtomb () - biblioteka standardowa C ++

Funkcja wcrtomb () w C ++ konwertuje szeroki znak na jego wąską reprezentację wielobajtową.

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

wcrtomb () prototyp

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Funkcja wcrtomb () konwertuje szeroki znak reprezentowany przez wc na wąski znak wielobajtowy i jest przechowywany pod adresem wskazywanym przez s.

  • Jeśli s nie jest pustym wskaźnikiem, funkcja wcrtomb () określa maksymalną liczbę bajtów wymaganych do przechowywania wielobajtowej reprezentacji wc i przechowuje ją w lokalizacji pamięci wskazywanej przez s. Można zapisać maksymalnie MB_CUR_MAX bajtów. Wartość ps jest aktualizowana zgodnie z wymaganiami.
  • Jeśli s jest pustym wskaźnikiem, wywołanie jest równoważne z wcrtomb(buf, L'', ps)jakimś wewnętrznym buforem buf.
  • Jeśli wc == L''przechowywany jest bajt null.

wcrtomb () Parametry

  • s: wskaźnik do wielobajtowej tablicy znaków do przechowywania wyniku.
  • wc: szeroki znak do konwersji.
  • ps: Wskaźnik do stanu konwersji używanego podczas interpretacji ciągu wielobajtowego

wcrtomb () Wartość zwracana

  • Po pomyślnym zakończeniu funkcja wcrtomb () zwraca liczbę bajtów zapisanych w tablicy znaków, której pierwszy element jest wskazywany przez s.
  • W przypadku niepowodzenia (tj. Wc nie jest prawidłowym szerokim znakiem), zwraca -1, errno jest ustawiane na EILSEQ i pozostawia * ps w nieokreślonym stanie.

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

Interesujące artykuły...