C ++ wctomb () - C ++ Standardbibliothek

Die Funktion wctomb () in C ++ konvertiert ein breites Zeichen in ein Multibyte-Zeichen.

Die Funktion wctomb () ist in der Header-Datei definiert.

wctomb () Prototyp

 int wctomb (char * pmb, wchar_t wc);

Die Funktion wctomb () akzeptiert zwei Argumente und gibt einen ganzzahligen Wert zurück. Diese Funktion konvertiert das durch wc dargestellte breite Zeichen in sein Multibyte-Äquivalent und wird an dem Speicherort gespeichert, auf den pmb zeigt. Die maximale Anzahl von Zeichen, die gespeichert werden können, ist MB_CUR_MAX .

Wenn wc das Nullzeichen ist, wird das Nullbyte in pmb geschrieben.

Wenn pmb ein Nullzeiger ist, setzt ein Aufruf von wctomb () den globalen Konvertierungsstatus zurück und bestimmt, ob Verschiebungssequenzen verwendet werden.

wctomb () Parameter

  • pmb: Zeiger auf das resultierende Multibyte-Zeichen
  • wc: Breites Zeichen, das in ein Multibyte-Zeichen konvertiert wird

wctomb () Rückgabewert

Wenn pmb kein Nullzeiger ist, gibt wctomb () Folgendes zurück:

  • Die Anzahl der Bytes, die in der Multibyte-Darstellung von wc enthalten sind.
  • -1 wenn wc kein gültiges Zeichen ist.

Wenn pmb ein Nullzeiger ist, setzt er seinen internen Konvertierungsstatus zurück, um den anfänglichen Verschiebungsstatus darzustellen, und gibt Folgendes zurück:

  • 0, wenn die aktuelle Multibyte-Codierung nicht zustandsabhängig ist (keine Verschiebungssequenzen verwendet)
  • ein Wert ungleich Null, wenn die aktuelle Multibyte-Codierung zustandsabhängig ist (verwendet Verschiebungssequenzen).

Beispiel: Wie funktioniert die Funktion wctomb ()?

 #include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )

Wenn Sie das Programm ausführen, ist eine mögliche Ausgabe:

 Wenn pmb nicht null ist Rückgabewert = 1 Multibyte-Zeichen: x↨R Wenn pmb null ist Rückgabewert = 0 Multibyte-Zeichen:

Interessante Beiträge...