C ++ mbtowc () - C ++ Standardbibliothek

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

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

mbtowc () Prototyp

 int mbtowc (wchar_t * pwc, const char * pmb, size_t max);

Die Funktion mbtowc () akzeptiert drei Argumente und gibt einen ganzzahligen Wert zurück. Diese Funktion konvertiert das von pmb angezeigte Multibyte-Zeichen in ein breites Zeichen (Wert vom Typ wchar_t) und wird an dem von pwc angegebenen Speicherort gespeichert.

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

mbtowc () Parameter

  • pwc: Zeiger auf das resultierende breite Zeichen
  • pmb: Zeiger auf das Multibyte-Zeichen, das in ein breites Zeichen umgewandelt wird
  • max: Maximale Größe in Byte von pmb, die für das Multibyte-Zeichen berücksichtigt werden soll.

mbtowc () Rückgabewert

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

  • Die Anzahl der Bytes, die in dem von pmb angegebenen Multibyte-Zeichen enthalten sind.
  • -1, wenn das erste Byte, auf das pmb zeigt, kein gültiges Multibyte-Zeichen bildet.
  • 0, wenn pmb auf das abschließende Nullzeichen zeigt, dh ' 0'.

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 mbtowc ()?

 #include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )

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

 Rückgabewert = 1 Breite Zeichenfolge: W @

Interessante Beiträge...