A função mbtowc () em C ++ converte um caractere multibyte em um caractere largo.
A função mbtwoc () é definida no arquivo de cabeçalho.
protótipo mbtowc ()
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
A função mbtowc () recebe três argumentos e retorna um valor inteiro. Esta função converte o caractere multibyte apontado por pmb em um caractere largo (valor do tipo wchar_t) e é armazenado no local da memória apontado por pwc.
Se pmb for um ponteiro nulo, uma chamada para mbtowc () redefinirá o estado de conversão global e determinará se as sequências de deslocamento são usadas.
Parâmetros mbtowc ()
- pwc: ponteiro para o caractere largo resultante
- pmb: ponteiro para o caractere multibyte que é convertido em caractere largo
- max: tamanho máximo em bytes de pmb a considerar para o caractere multibyte.
mbtowc () Valor de retorno
Se pmb não for um ponteiro nulo, mbtowc () retornará:
- o número de bytes contidos no caractere multibyte apontado por pmb.
- -1 se o primeiro byte apontado por pmb não formar um caractere multibyte válido.
- 0 se pmb estiver apontando para o caractere nulo de terminação, ou seja, ' 0'.
Se pmb for um ponteiro nulo, 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)
- um valor diferente de zero se a codificação multibyte atual for dependente do estado (usa sequências de deslocamento).
Exemplo: Como funciona a função mbtowc ()?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Quando você executa o programa, uma possível saída será:
Valor de retorno = 1 string de caracteres largos: W @