Az mbrlen () függvény C ++ nyelven határozza meg a többbájtos karakter méretét bájtokban.
Az mbrlen () függvény a fejlécfájlban van meghatározva.
mbrlen () prototípus
size_t mbrlen (const char * s, size_t n, mbstate_t * ps);
Az mbrlen () függvény megvizsgálja azt a karakterláncot, amelynek első bájtjára s mutat, és bájtban meghatározza annak méretét az aktuális ps konverziós állapotra. Legfeljebb n byte-ot vizsgálunk s-ben.
mbrlen () Paraméterek
- s: A többbájtos karakterlánc első bájtjának vizsgálata.
- n: MA A vizsgálandó bájtok maximális száma s-ben.
- ps: Az mbstate_t objektum mutatója, amely meghatározza a konverziós állapotot.
mbrlen () Visszatérési érték
Az mbrlen () függvény visszatér:
- Az érvényes többbájtos karaktert kitöltő bájtok száma.
- 0, ha s null karakterre mutat.
- -1 kódolási hiba lép fel.
- -2, ha a következő n bájt nem egy teljes többbájtos karaktert képvisel.
Példa: Hogyan működik az mbrlen () függvény?
#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; )
A program futtatásakor a kimenet a következő lesz:
A következő 1 bájt nem képvisel egy teljes többbájtos karaktert. A következő 5 bájt µ 2 bájt többbájtos karaktert tartalmaz