C ++ mbstowcs () - Biblioteca C ++ Padrão

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 = ─

Artigos interessantes...