C ++ mbrlen () - C ++ standardraamatukogu

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

Huvitavad Artiklid...