A função mblen () em C ++ determina o tamanho (em bytes) de um caractere multibyte.
A função mblen () é definida no arquivo de cabeçalho.
protótipo mblen () (a partir do padrão C ++ 11)
int mblen (const char * s, size_t max);
A função mblen () recebe dois argumentos s e max, e retorna um valor inteiro. O ponteiro s aponta para o primeiro byte de um caractere multibyte cujo tamanho é retornado pela função.
Parâmetros mblen ()
- s: ponteiro para o primeiro byte de um caractere multibyte ou um ponteiro nulo.
- max: Número máximo de bytes em s que podem ser examinados.
mblen () Valor de retorno
Se s for um ponteiro nulo, uma chamada para mblen () redefine seu estado de conversão interno para representar o estado de deslocamento inicial e retorna:
- 0 se a codificação multibyte atual não for dependente do estado (não usa sequências de deslocamento).
- valor diferente de zero se a codificação multibyte atual for dependente do estado (usa sequências de deslocamento).
Se s não for um ponteiro nulo, a função mblen () retornará:
- o número de bytes contidos no caractere multibyte.
- -1 se os primeiros bytes apontados por s não formarem um caractere multibyte válido.
- 0 se s estiver apontando para o caractere nulo ' 0'.
Exemplo: Como a função mblen () funciona em 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; )
Quando você executa o programa, a saída será:
Comprimento do caractere multibyte: 1