C ++ mbrlen () - C ++ Standardbibliothek

Die Funktion mbrlen () in C ++ bestimmt die Größe eines Multibyte-Zeichens in Byte.

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

mbrlen () Prototyp

 size_t mbrlen (const char * s, size_t n, mbstate_t * ps);

Die Funktion mbrlen () untersucht den String, auf dessen erstes Byte s zeigt, und bestimmt seine Größe in Bytes für den aktuellen Konvertierungszustand ps. Es werden höchstens n Bytes in s untersucht.

mbrlen () Parameter

  • s: Zeiger auf das erste zu untersuchende Byte der Multibyte-Zeichenfolge.
  • n: Maximale Anzahl von zu untersuchenden Bytes in s.
  • ps: Zeiger auf das Objekt mbstate_t, das einen Konvertierungsstatus definiert.

mbrlen () Rückgabewert

Die Funktion mbrlen () gibt Folgendes zurück:

  • Die Anzahl der Bytes, die ein gültiges Multibyte-Zeichen vervollständigen.
  • 0, wenn s auf ein Nullzeichen zeigt.
  • -1 ist ein Codierungsfehler.
  • -2, wenn die nächsten n Bytes kein vollständiges Multibyte-Zeichen darstellen.

Beispiel: Wie funktioniert die Funktion mbrlen ()?

 #include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Die nächsten 1 Bytes stellen kein vollständiges Multibyte-Zeichen dar. Die nächsten 5 Bytes von µ enthalten 2 Bytes Multibyte-Zeichen

Interessante Beiträge...