A função wctomb () em C ++ converte um caractere largo em um caractere multibyte.
A função wctomb () é definida no arquivo de cabeçalho.
protótipo wctomb ()
int wctomb (char * pmb, wchar_t wc);
A função wctomb () recebe dois argumentos e retorna um valor inteiro. Esta função converte o caractere largo representado por wc em seu equivalente multibyte e é armazenado no local da memória apontado por pmb. O número máximo de caracteres que podem ser armazenados é MB_CUR_MAX .
Se wc for o caractere nulo, o byte nulo será gravado em pmb.
Se pmb for um ponteiro nulo, uma chamada para wctomb () redefinirá o estado de conversão global e determinará se as sequências de deslocamento são usadas.
Parâmetros wctomb ()
- pmb: ponteiro para o caractere multibyte resultante
- wc: caractere largo que é convertido em caractere multibyte
wctomb () Valor de retorno
Se pmb não for um ponteiro nulo, wctomb () retornará:
- o número de bytes contidos na representação multibyte de wc.
- -1 se wc não for um caractere válido.
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 wctomb ()?
#include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )
Quando você executa o programa, uma possível saída será:
Quando pmb não é nulo Return Value = 1 Multibyte Character: x↨R Quando pmb é null Return Value = 0 Multibyte Character: