C ++ c16rtomb () - C ++ Standardbibliothek

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!

Interessante Beiträge...