Funkcja mblen () w C ++ określa rozmiar (w bajtach) znaku wielobajtowego.
Funkcja mblen () jest zdefiniowana w pliku nagłówkowym.
mblen () prototyp (w standardzie C ++ 11)
int mblen (const char * s, size_t max);
Funkcja mblen () przyjmuje dwa argumenty s i max i zwraca wartość całkowitą. Wskaźnik s wskazuje na pierwszy bajt wielobajtowego znaku, którego rozmiar jest zwracany przez funkcję.
mblen () Parametry
- s: wskaźnik do pierwszego bajtu znaku wielobajtowego lub wskaźnika zerowego.
- max: Maksymalna liczba bajtów w s, które można sprawdzić.
mblen () Wartość zwracana
Jeśli s jest pustym wskaźnikiem, wywołanie mblen () resetuje swój wewnętrzny stan konwersji, aby reprezentować początkowy stan przesunięcia i zwraca:
- 0, jeśli bieżące kodowanie wielobajtowe nie jest zależne od stanu (nie używa sekwencji przesunięć).
- wartość niezerowa, jeśli bieżące kodowanie wielobajtowe jest zależne od stanu (używa sekwencji przesunięć).
Jeśli s nie jest pustym wskaźnikiem, funkcja mblen () zwraca:
- liczba bajtów zawartych w znaku wielobajtowym.
- -1, jeśli pierwsze bajty wskazywane przez s nie tworzą prawidłowego znaku wielobajtowego.
- 0, jeśli s wskazuje na znak null „ 0”.
Przykład: Jak funkcja mblen () działa w 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 uruchomieniu programu wynik będzie następujący:
Długość znaku wielobajtowego: 1