C ++ wcrtomb () - C ++ Standardbibliothek

Die Funktion wcrtomb () in C ++ konvertiert ein breites Zeichen in seine schmale Multibyte-Darstellung.

Das wcrtomb () wird in der Header-Datei definiert.

wcrtomb () Prototyp

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

Die Funktion wcrtomb () konvertiert das durch wc dargestellte breite Zeichen in ein schmales Multibyte-Zeichen und wird in der Adresse gespeichert, auf die s zeigt.

  • Wenn s kein Nullzeiger ist, bestimmt die Funktion wcrtomb () die maximale Anzahl von Bytes, die zum Speichern der Multibyte-Darstellung von wc erforderlich sind, und speichert sie an dem Speicherort, auf den s zeigt. Es können maximal MB_CUR_MAX- Bytes geschrieben werden. Der Wert von ps wird nach Bedarf aktualisiert.
  • Wenn s ein Nullzeiger ist, entspricht der Aufruf wcrtomb(buf, L'', ps)einem internen Pufferpuffer.
  • Wenn wc == L'', wird ein Null-Byte gespeichert.

wcrtomb () Parameter

  • s: Zeiger auf das Multibyte-Zeichenarray zum Speichern des Ergebnisses.
  • wc: Breites Zeichen zum Konvertieren.
  • ps: Zeiger auf den Konvertierungsstatus, der bei der Interpretation der Multibyte-Zeichenfolge verwendet wird

wcrtomb () Rückgabewert

  • Bei Erfolg gibt die Funktion wcrtomb () die Anzahl der Bytes zurück, die in das Zeichenarray geschrieben wurden, auf dessen erstes Element s zeigt.
  • Bei einem Fehler (dh wc ist kein gültiges breites Zeichen) wird -1 zurückgegeben, errno wird auf EILSEQ gesetzt und * ps bleibt in einem nicht spezifizierten Zustand.

Beispiel: Wie funktioniert die Funktion 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

Interessante Beiträge...