Funkcia mblen () v C ++ určuje veľkosť (v bajtoch) viacbajtového znaku.
Funkcia mblen () je definovaná v hlavičkovom súbore.
mblen () prototyp (od štandardu C ++ 11)
int mblen (const char * s, size_t max);
Funkcia mblen () má dva argumenty s a max a vráti celočíselnú hodnotu. Ukazovateľ s ukazuje na prvý bajt viacbajtového znaku, ktorého veľkosť vráti funkcia.
mblen () parametre
- s: Ukazovateľ na prvý bajt viacbajtového znaku alebo nulový ukazovateľ.
- max: Maximálny počet bytov v s, ktoré je možné preskúmať.
mblen () Vrátená hodnota
Ak s je nulový ukazovateľ, volanie mblen () obnoví jeho stav internej konverzie tak, aby predstavoval počiatočný stav posunu, a vráti:
- 0, ak súčasné viacbajtové kódovanie nie je závislé od stavu (nepoužíva posúvacie sekvencie).
- nenulová hodnota, ak je súčasné viacbajtové kódovanie závislé od stavu (používa sekvencie posunu).
Ak s nie je nulový ukazovateľ, vráti funkcia mblen ():
- počet bajtov, ktoré obsahuje viacbajtový znak.
- -1, ak prvé bajty, na ktoré odkazuje s, netvoria platný viacbajtový znak.
- 0, ak s smeruje na prázdny znak „ 0“.
Príklad: Ako funguje funkcia mblen () v C ++?
#include #include #include using namespace std; int main() ( int len; char *s = (char *)malloc(20); strcpy(s,"xe4xbdxa0xe5xa5xbd"); /* resets the conversion state */ mblen(NULL, 0); len = mblen(s,strlen(s)); cout << "Length of multibyte character: " << len << endl; return 0; )
Po spustení programu bude výstup:
Dĺžka viacbytového znaku: 1