C ++ mbrlen () - Standardna knjižnica C ++

Funkcija mbrlen () v jeziku C ++ določa velikost večbajtnega znaka v bajtih.

Funkcija mbrlen () je definirana v glavi datoteke.

prototip mbrlen ()

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

Funkcija mbrlen () preuči niz, na katerega prvi bajt kaže s, in določi njegovo velikost v bajtih za trenutno stanje pretvorbe ps. Preuči se največ n bajtov v s.

mbrlen () Parametri

  • s: Kazalec na prvi bajt večbajtnega niza za pregled.
  • n: M Največje število bajtov v s, ki jih je treba preučiti.
  • ps: Kazalec na objekt mbstate_t, ki definira stanje pretvorbe.

mbrlen () Vrnjena vrednost

Funkcija mbrlen () vrne:

  • Število bajtov, ki dopolnjujejo veljaven večbajtni znak.
  • 0, če s kaže na ničelni znak.
  • -1 je prišlo do napake pri kodiranju.
  • -2, če naslednjih n bajtov ne predstavlja celotnega večbajtnega znaka.

Primer: Kako deluje funkcija 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; )

Ko zaženete program, bo rezultat:

 Naslednjih 1 bajtov ne predstavlja celotnega večbajtnega znaka. Naslednjih 5 bajtov od µ vsebuje 2 bajta večbajtnega znaka

Zanimive Članki...