Die Funktion mbstowcs () in C ++ konvertiert eine Multibyte-Zeichenfolge in eine äquivalent breite Zeichenfolge.
Die Funktion mbstowcs () ist in der Header-Datei definiert.
mbstowcs () Prototyp
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Die Funktion mbstowcs () akzeptiert drei Argumente und gibt einen ganzzahligen Wert zurück.
Diese Funktion konvertiert die Multibyte-Zeichenfolge, deren erstes Element von src gezeigt wird, in ihre Darstellung mit breiten Zeichen (Wert vom Typ wchar_t).
Das Ergebnis wird an dem Speicherort gespeichert, auf den dest zeigt. Der Parameter max gibt die maximale Anzahl der zu konvertierenden Multibyte-Zeichen an.
Der Konvertierungsmechanismus ist der gleiche wie der von mbtowc (), außer dass der Konvertierungsstatus von mbtowc nicht beeinflusst wird. Die Konvertierung wird beendet, wenn:
- Es wird ein Nullzeichen gefunden, das dann konvertiert und gespeichert wird.
- Es wurde ein ungültiges Multibyte-Zeichen gefunden.
- Die maximale Anzahl von Multibyte-Zeichen wurde konvertiert.
mbstowcs () Parameter
- dest: Zeiger auf das resultierende breite Zeichenarray.
- src: Zeiger auf das erste Element des Multibyte-Zeichens, das in ein breites Zeichen umgewandelt wird.
- max: Maximale Anzahl der zu konvertierenden Multibyte-Zeichen.
mbstowcs () Rückgabewert
- Wenn die Konvertierung erfolgreich ist, gibt mbstowcs () die Anzahl der breiten Zeichen mit Ausnahme des Abschlusszeichens (dh ' 0') zurück, das in das Zielarray geschrieben wird.
- Wenn während der Konvertierung ein Fehler auftritt, wird -1 zurückgegeben.
Beispiel: Wie funktioniert die Funktion mbstowcs ()?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Wenn Sie das Programm ausführen, ist eine mögliche Ausgabe:
Anzahl der konvertierten breiten Zeichen = 1 Breite Zeichenfolge = ─