A função mbstowcs () em C ++ converte uma seqüência de caracteres multibyte em uma seqüência de caracteres ampla equivalente.
A função mbstowcs () é definida no arquivo de cabeçalho.
protótipo mbstowcs ()
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
A função mbstowcs () recebe três argumentos e retorna um valor inteiro.
Esta função converte a cadeia de caracteres multibyte cujo primeiro elemento é apontado por src em sua representação de caractere largo (valor do tipo wchar_t).
O resultado é armazenado no local da memória apontado por dest. O parâmetro max representa o número máximo de caracteres multibyte a serem convertidos.
O mecanismo de conversão é o mesmo do mbtowc (), exceto que o estado de conversão do mbtowc não é afetado. A conversão para se:
- Um caractere nulo é encontrado, que é então convertido e armazenado.
- Um caractere multibyte inválido foi encontrado.
- o número máximo de caracteres multibyte foi convertido.
Parâmetros mbstowcs ()
- dest: Ponteiro para a ampla matriz de caracteres resultante.
- src: Ponteiro para o primeiro elemento do caractere multibyte que é convertido em caractere largo.
- max: Número máximo de caracteres multibyte a serem convertidos.
mbstowcs () Valor de retorno
- Se a conversão for bem-sucedida, mbstowcs () retorna o número de caracteres largos excluindo o caractere de terminação (isto é, ' 0') que é escrito no array de destino.
- Se ocorrer algum erro durante a conversão, ele retorna -1.
Exemplo: Como funciona a função mbstowcs ()?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Quando você executa o programa, uma possível saída será:
Número de caracteres largos convertidos = 1 String de caracteres largos = ─