C ++ mbrlen () - C ++ standarta bibliotēka

Funkcija mbrlen () valodā C ++ nosaka daudzbaitu rakstzīmes lielumu baitos.

Funkcija mbrlen () ir definēta galvenes failā.

mbrlen () prototips

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

Funkcija mbrlen () pārbauda virkni, uz kuras pirmo baitu norāda s, un nosaka tās lielumu baitos pašreizējam konversijas stāvoklim ps. Tiek pārbaudīts ne vairāk kā n baiti s.

mbrlen () Parametri

  • s: rādītājs pirmajam daudzbaitu virknes baitam, kas jāpārbauda.
  • n: MA Maksimālais pārbaudāmo baitu skaits s.
  • ps: objekta mbstate_t rādītājs, kas nosaka konversijas stāvokli.

mbrlen () Atgriešanās vērtība

Funkcija mbrlen () atgriež:

  • Baitu skaits, kas papildina derīgu daudzbaitu rakstzīmi.
  • 0, ja s norāda uz nulles rakstzīmi.
  • -1 ir kodēšanas kļūda.
  • -2, ja nākamie n baiti neatspoguļo pilnīgu daudzbaitu rakstzīmi.

Piemērs: Kā darbojas 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; )

Palaidot programmu, izeja būs:

 Nākamais (-ie) baits (-i) neatspoguļo pilnīgu daudzbaitu rakstzīmi

Interesanti raksti...