C ++ mbrlen () - štandardná knižnica C ++

Funkcia mbrlen () v C ++ určuje veľkosť viacbajtového znaku v bajtoch.

Funkcia mbrlen () je definovaná v hlavičkovom súbore.

mbrlen () prototyp

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

Funkcia mbrlen () skúma reťazec, na ktorého prvý bajt odkazuje s, a určuje jeho veľkosť v bajtoch pre aktuálny stav konverzie ps. Skúma sa najviac n bajtov v s.

Parametre mbrlen ()

  • s: Ukazovateľ na prvý bajt viacbajtového reťazca, ktorý sa má preskúmať.
  • n: MAXimálny počet bajtov v s na preskúmanie.
  • ps: Ukazovateľ na objekt mbstate_t, ktorý definuje stav konverzie.

mbrlen () Vrátená hodnota

Funkcia mbrlen () vráti:

  • Počet bajtov, ktoré dokončia platný viacbajtový znak.
  • 0 ak s ukazuje na nulový znak.
  • -1 je chyba kódovania.
  • -2, ak nasledujúcich n bajtov nepredstavuje úplný viacbajtový znak.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 Nasledujúci 1 bajt (y) nepredstavuje úplný viacbajtový znak Ďalších 5 bajtov (y) µ obsahuje 2 bajty viacbytového znaku

Zaujímavé články...