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