C ++ mbrlen () - C ++ standaardbibliotheek

De functie mbrlen () in C ++ bepaalt de grootte in bytes van een multibyte-teken.

De functie mbrlen () is gedefinieerd in het header-bestand.

mbrlen () prototype

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

De functie mbrlen () onderzoekt de string waarvan de eerste byte wordt aangeduid door s en bepaalt de grootte in bytes voor de huidige conversiestatus ps. Er wordt gekeken naar maximaal n bytes in s.

mbrlen () Parameters

  • s: Pointer naar de eerste byte van de multibyte-reeks die moet worden onderzocht.
  • n: MAximaal aantal bytes in s om te onderzoeken.
  • ps: Pointer naar mbstate_t-object dat een conversiestatus definieert.

mbrlen () Retourwaarde

De functie mbrlen () retourneert:

  • Het aantal bytes dat een geldig multibyte-teken voltooit.
  • 0 als s naar een nul-teken verwijst.
  • -1 is er een coderingsfout opgetreden.
  • -2 als de volgende n bytes geen volledig multibyte-teken vertegenwoordigen.

Voorbeeld: hoe mbrlen () -functie werkt?

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

Wanneer u het programma uitvoert, is de uitvoer:

 Volgende 1 byte (n) vertegenwoordigt geen volledig multibyte-teken Volgende 5 byte (s) van µ bevat 2 bytes multibyte-teken

Interessante artikelen...