Funkcja c16rtomb () w C ++ konwertuje 16-bitową reprezentację znaków na wąską, wielobajtową reprezentację znaków.
Funkcja c16rtomb () jest zdefiniowana w pliku nagłówkowym.
c16rtomb () Prototype
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
Funkcja c16rtomb () konwertuje znak utf-16 c16 na jego wielobajtowy odpowiednik i zapisuje go w obiekcie wskazywanym przez s.
Jeśli s reprezentuje pusty wskaźnik, wywołanie jest równoważne c16rtomb (buf, u ' 0', ps) dla jakiegoś wewnętrznego bufora buf.
Jeśli c16 jest znakiem o szerokości null, tj. U ' 0', przechowywany jest bajt zerowy.
Parametry c16rtomb ()
- s: Wskaźnik do tablicy znaków, w której ma być przechowywany znak wielobajtowy.
- c16: 16-bitowy znak do konwersji.
- ps: wskaźnik do obiektu mbstate_t używanego podczas interpretacji ciągu wielobajtowego.
c16rtomb () Wartość zwracana
- Po pomyślnym zakończeniu funkcja c16rtomb () zwraca liczbę bajtów zapisanych w tablicy znaków wskazywanej przez s.
- W przypadku niepowodzenia zwracane jest -1, a EILSEQ jest zapisywane w errno.
Przykład: Jak działa funkcja c16rtomb ()?
#include #include using namespace std; int main() ( const char16_t str() = u"Hello World!"; char s(50); mbstate_t ps(); size_t length; int j = 0; while (str(j)) ( length = c16rtomb(s, str(j), &ps); if ((length == 0) || (length> 50)) break; for (int i=0; i
When you run the program, the output will be:
Hello World!