C ++ mbrlen () - C ++ Standardbibliotek

Funktionen mbrlen () i C ++ bestämmer storleken i byte av ett multibyt-tecken.

Funktionen mbrlen () definieras i rubrikfilen.

mbrlen () prototyp

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

Funktionen mbrlen () undersöker strängen vars första byte pekas på med s och bestämmer dess storlek i byte för det aktuella omvandlingstillståndet ps. Högst n byte i s undersöks.

mbrlen () Parametrar

  • s: Pekare till den första byten av multibytsträng som ska undersökas.
  • n: MA Maximalt antal byte i s att undersöka.
  • ps: Pekare till mbstate_t-objekt som definierar ett omvandlingstillstånd.

mbrlen () Returvärde

Funktionen mbrlen () returnerar:

  • Antalet byte som kompletterar ett giltigt multibytecken.
  • 0 om s pekar på noll tecken.
  • -1 är kodningsfel uppstår.
  • -2 om nästa n byte inte representerar ett komplett multibyt-tecken.

Exempel: Hur fungerar 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ör programmet blir resultatet:

 Nästa 1 byte (s) representerar inte ett komplett multibyt-tecken Nästa 5 byte (r) med µ innehåller 2 byte med multibyt-tecken

Intressanta artiklar...