C ++ mbrlen () - C ++ Standardbibliotek

Funksjonen mbrlen () i C ++ bestemmer størrelsen i byte av et multibyttegn.

Funksjonen mbrlen () er definert i topptekstfilen.

mbrlen () prototype

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

Funksjonen mbrlen () undersøker strengen hvis første byte pekes på med s og bestemmer størrelsen i byte for gjeldende konverteringstilstand ps. På det meste blir n byte i s undersøkt.

mbrlen () Parametere

  • s: peker til den første byten av multibyte-streng som skal undersøkes.
  • n: Maksimalt antall byte i s for å undersøke.
  • ps: peker til mbstate_t-objekt som definerer en konverteringstilstand.

mbrlen () Returverdi

Funksjonen mbrlen () returnerer:

  • Antall byte som fullfører et gyldig multibyttegn.
  • 0 hvis s peker til nulltegn.
  • -1 er kodingsfeil oppstår.
  • -2 hvis de neste n byte ikke representerer et komplett multibyte-tegn.

Eksempel: Hvordan fungerer mbrlen () -funksjonen?

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

Når du kjører programmet, vil utdataene være:

 Neste 1 byte (r) representerer ikke et komplett multibyttegn. Neste 5 byte (r) på µ inneholder 2 byte med multibyttegn

Interessante artikler...