C ++ mbrlen () - C ++ szabványos könyvtár

Az mbrlen () függvény C ++ nyelven határozza meg a többbájtos karakter méretét bájtokban.

Az mbrlen () függvény a fejlécfájlban van meghatározva.

mbrlen () prototípus

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

Az mbrlen () függvény megvizsgálja azt a karakterláncot, amelynek első bájtjára s mutat, és bájtban meghatározza annak méretét az aktuális ps konverziós állapotra. Legfeljebb n byte-ot vizsgálunk s-ben.

mbrlen () Paraméterek

  • s: A többbájtos karakterlánc első bájtjának vizsgálata.
  • n: MA A vizsgálandó bájtok maximális száma s-ben.
  • ps: Az mbstate_t objektum mutatója, amely meghatározza a konverziós állapotot.

mbrlen () Visszatérési érték

Az mbrlen () függvény visszatér:

  • Az érvényes többbájtos karaktert kitöltő bájtok száma.
  • 0, ha s null karakterre mutat.
  • -1 kódolási hiba lép fel.
  • -2, ha a következő n bájt nem egy teljes többbájtos karaktert képvisel.

Példa: Hogyan működik az mbrlen () függvény?

 #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; )

A program futtatásakor a kimenet a következő lesz:

 A következő 1 bájt nem képvisel egy teljes többbájtos karaktert. A következő 5 bájt µ 2 bájt többbájtos karaktert tartalmaz

érdekes cikkek...