Die Funktion mblen () in C ++ bestimmt die Größe (in Bytes) eines Multibyte-Zeichens.
Die Funktion mblen () ist in der Header-Datei definiert.
Prototyp mblen () (Stand C ++ 11)
int mblen (const char * s, size_t max);
Die Funktion mblen () verwendet zwei Argumente s und max und gibt einen ganzzahligen Wert zurück. Der Zeiger s zeigt auf das erste Byte eines Multibyte-Zeichens, dessen Größe von der Funktion zurückgegeben wird.
mblen () Parameter
- s: Zeiger auf das erste Byte eines Multibyte-Zeichens oder eines Nullzeigers.
- max: Maximale Anzahl von Bytes in s, die untersucht werden können.
mblen () Rückgabewert
Wenn s ein Nullzeiger ist, setzt ein Aufruf von mblen () 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).
- Wert ungleich Null, wenn die aktuelle Multibyte-Codierung zustandsabhängig ist (verwendet Verschiebungssequenzen).
Wenn s kein Nullzeiger ist, gibt die Funktion mblen () Folgendes zurück:
- Die Anzahl der Bytes, die im Multibyte-Zeichen enthalten sind.
- -1, wenn die ersten Bytes, auf die s zeigt, kein gültiges Multibyte-Zeichen bilden.
- 0, wenn s auf das Nullzeichen ' 0' zeigt.
Beispiel: Wie funktioniert die Funktion mblen () in C ++?
#include #include #include using namespace std; int main() ( int len; char *s = (char *)malloc(20); strcpy(s,"xe4xbdxa0xe5xa5xbd"); /* resets the conversion state */ mblen(NULL, 0); len = mblen(s,strlen(s)); cout << "Length of multibyte character: " << len << endl; return 0; )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Länge des Multibyte-Zeichens: 1