C ++ mbrlen () - C ++ Standardbibliotek

Funktionen mbrlen () i C ++ bestemmer størrelsen i byte af et multibyttegn.

Funktionen mbrlen () er defineret i header-fil.

mbrlen () prototype

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

Funktionen mbrlen () undersøger strengen, hvis første byte peges på med s, og bestemmer dens størrelse i byte for den aktuelle konverteringstilstand ps. Højst n bytes i s undersøges.

mbrlen () Parametre

  • s: Markør til den første byte af multibyte-streng, der skal undersøges.
  • n: Maksimalt antal byte i s, der skal undersøges.
  • ps: Markør til mbstate_t-objekt, der definerer en konverteringstilstand.

mbrlen () Returværdi

Funktionen mbrlen () returnerer:

  • Antallet af bytes, der fuldender et gyldigt multibyttegn.
  • 0 hvis s peger på nul tegn.
  • -1 er kodningsfejl opstår.
  • -2, hvis de næste n byte ikke repræsenterer et komplet multibyttegn.

Eksempel: Hvordan fungerer 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; )

Når du kører programmet, vil output være:

 Næste 1 byte (r) repræsenterer ikke et komplet multibyttegn Næste 5 byte (r) på µ indeholder 2 byte med multibyttegn

Interessante artikler...