C ++ mbrlen () - C ++ standardna biblioteka

Funkcija mbrlen () u C ++ određuje veličinu u bajtovima višebajtnog znaka.

Funkcija mbrlen () definirana je u zaglavnoj datoteci.

prototip mbrlena ()

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

Funkcija mbrlen () ispituje niz na čiji je prvi bajt usmjeren s i određuje njegovu veličinu u bajtovima za trenutno stanje pretvorbe ps. Ispituje se najviše n bajtova u s.

mbrlen () Parametri

  • s: Pokazivač na prvi bajt višebajtnog niza za ispitivanje.
  • n: Maksimalan broj bajtova u s za ispitivanje.
  • ps: Pokazivač na objekt mbstate_t koji definira stanje pretvorbe.

mbrlen () Povratna vrijednost

Funkcija mbrlen () vraća:

  • Broj bajtova koji završavaju valjani višebajtni znak.
  • 0 ako s pokazuje na null znak.
  • -1 dolazi do pogreške u kodiranju.
  • -2 ako sljedećih n bajtova ne predstavlja cjeloviti višebajtni znak.

Primjer: Kako funkcionira 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; )

Kada pokrenete program, izlaz će biti:

 Sljedećih 1 bajt (a) ne predstavljaju cjeloviti višebajtni znak Sljedećih 5 bajtova (a) od µ sadrži 2 bajta višebajtnog znaka

Zanimljivi članci...