C ++ mbrlen () - Biblioteca standard C ++

Funcția mbrlen () din C ++ determină dimensiunea în octeți a unui caracter multibyte.

Funcția mbrlen () este definită în fișierul antet.

mbrlen () prototip

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

Funcția mbrlen () examinează șirul al cărui prim octet este indicat de s și determină dimensiunea acestuia în octeți pentru starea de conversie curentă ps. Se examinează cel mult n octeți în s.

mbrlen () Parametri

  • s: Pointer către primul octet al șirului multibyte de examinat.
  • n: MA Număr maxim de octeți în s de examinat.
  • ps: Pointer către obiectul mbstate_t care definește o stare de conversie.

mbrlen () Valoare returnată

Funcția mbrlen () returnează:

  • Numărul de octeți care completează un caracter multibyte valid.
  • 0 dacă s indică caracterul nul.
  • -1 este eroare de codare.
  • -2 dacă următorii n octeți nu reprezintă un caracter multibyte complet.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

 Următorul 1 octet (e) nu reprezintă un caracter multibyte complet Următorul 5 octet (e) de µ conține 2 octeți de caracter multibyte

Articole interesante...