C ++ mbrlen () - C ++ - vakiokirjasto

Funktio mbrlen () C ++: ssa määrittää monitavuisen merkin koon tavuina.

Mbrlen () -funktio määritetään otsikkotiedostossa.

mbrlen () -prototyyppi

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

Funktio mbrlen () tutkii merkkijonoa, jonka ensimmäiseen tavuun s viittaa, ja määrittää sen koon tavuina nykyiselle muunnostilalle ps. Tutkitaan korkeintaan n tavua s: ssä.

mbrlen () -parametrit

  • s: Osoitin tutkittavan monitavuisen merkkijonon ensimmäiseen tavuun.
  • n: Suurin tutkittavien tavujen lukumäärä s: ssä.
  • ps: Osoitin mbstate_t-objektille, joka määrittää muunnostilan.

mbrlen () Palautusarvo

Mbrlen () -funktio palauttaa:

  • Tavun määrä, joka täydentää kelvollisen monitavuisen merkin.
  • 0, jos s osoittaa nolla merkkiä.
  • -1 on koodausvirhe.
  • -2, jos seuraavat n tavua eivät edusta täydellistä monitavuista merkkiä.

Esimerkki: Kuinka mbrlen () -toiminto toimii?

 #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; )

Kun suoritat ohjelmaa, tulos on:

 Seuraava 1 tavu (t) ei edusta täydellistä monitavuista merkkiä. Seuraava 5 tavua / µ sisältää 2 tavua monitavuista merkkiä

Mielenkiintoisia artikkeleita...