Funktsioon mbrlen () funktsioonis C ++ määrab mitmebaidise märgi suuruse baitides.
Funktsioon mbrlen () on määratletud päisefailis.
mbrlen () prototüüp
size_t mbrlen (const char * s, size_t n, mbstate_t * ps);
Funktsioon mbrlen () uurib stringi, mille esimesele baidile osutab s, ja määrab selle suuruse baitides praeguse teisendusoleku ps korral. Uuritakse maksimaalselt n baiti s-s.
mbrlen () Parameetrid
- s: kursor mitme baidise stringi esimese baidini uurimiseks.
- n: Maksimaalne uuritavate baitide arv sekundites.
- ps: Objekti mbstate_t kursor, mis määrab teisenduse oleku.
mbrlen () Tagastusväärtus
Funktsioon mbrlen () tagastab:
- Baitide arv, mis täidavad kehtiva mitmebaidise märgi.
- 0, kui s osutab nullmärgile.
- -1 on kodeerimisviga.
- -2, kui järgmised n baiti ei tähenda täielikku mitmebaidist tähemärki.
Näide: Kuidas funktsioon mbrlen () töötab?
#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; )
Programmi käivitamisel on väljund järgmine:
Järgmine 1 bait (id) ei tähenda täielikku mitmebaidist tähemärki. Järgmine 5 bait (i) mahutab 2 baiti mitme baiti märki