C ++ mbrlen () - C ++ standartinė biblioteka

Funkcija „mbrlen“ (C ++) nustato daugiabačio simbolio dydį baitais.

Funkcija „mbrlen“ () apibrėžta antraštės faile.

mbrlen () prototipas

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

Funkcija „mbrlen“ () tiria eilutę, kurios pirmąjį baitą rodo s, ir nustato jos dydį baitais pagal dabartinę konversijos būseną ps. Nagrinėjama daugiausiai n baitų s.

mbrlen () Parametrai

  • s: Pirmojo tiriamo daugiabačio eilutės baito žymeklis.
  • n: MA Maksimalus tiriamų baitų skaičius s.
  • ps: Objekto mbstate_t žymeklis, apibrėžiantis konversijos būseną.

mbrlen () Grąžinimo vertė

Funkcija „mbrlen“ () grąžina:

  • Baitų, kurie užpildo galiojantį daugbaitį simbolį, skaičius.
  • 0, jei s nurodo nulinį simbolį.
  • -1 yra kodavimo klaida.
  • -2, jei kiti n baitai neatvaizduoja viso daugiabačio simbolio.

Pavyzdys: Kaip veikia „mbrlen“) funkcija?

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

Kai paleisite programą, išvestis bus:

 Kitas 1 baitas (-ai) neatspindi viso daugiabačio simbolio. Kitas 5 µ baitas (-ai) turi 2 baitus daugiabačio simbolio

Įdomios straipsniai...