Die Funktion c16rtomb () in C ++ konvertiert die 16-Bit-Zeichendarstellung in eine schmale Multibyte-Zeichendarstellung.
Die Funktion c16rtomb () ist in der Header-Datei definiert.
c16rtomb () Prototyp
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
Die Funktion c16rtomb () konvertiert das utf-16-Zeichen c16 in sein Multibyte-Äquivalent und speichert es in dem Objekt, auf das s zeigt.
Wenn s einen Nullzeiger darstellt, entspricht der Aufruf c16rtomb (buf, u ' 0', ps) für einen internen Puffer buf.
Wenn c16 das nullbreite Zeichen ist, dh u ' 0', wird ein Nullbyte gespeichert.
c16rtomb () Parameter
- s: Zeiger auf ein Zeichenarray, in dem das Multibyte-Zeichen gespeichert werden soll.
- c16: Das zu konvertierende 16-Bit-Zeichen.
- ps: Ein Zeiger auf ein mbstate_t-Objekt, das beim Interpretieren der Multibyte-Zeichenfolge verwendet wird.
c16rtomb () Rückgabewert
- Bei Erfolg gibt die Funktion c16rtomb () die Anzahl der Bytes zurück, die in das Zeichenarray geschrieben wurden, auf das s zeigt.
- Bei einem Fehler wird -1 zurückgegeben und EILSEQ wird in errno gespeichert.
Beispiel: Wie funktioniert die Funktion 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!