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

A função wcstombs () em C ++ converte uma cadeia de caracteres larga em uma seqüência multibyte equivalente.

A função wcstombs () é definida no arquivo de cabeçalho.

protótipo wcstombs ()

 size_t wcstombs (char * dest, const wchar_t * src, size_t max);

A função wcstombs () recebe três argumentos e retorna um valor inteiro.

Esta função converte a cadeia de caracteres larga cujo primeiro elemento é apontado por src em sua representação multibyte.

O resultado é armazenado no local da memória apontado por dest. O parâmetro max representa o número máximo de caracteres largos a serem convertidos.

O mecanismo de conversão é o mesmo de wctomb, exceto que o estado de conversão wctomb não é afetado. A conversão para se:

  • Um caractere nulo é encontrado, que é então convertido e armazenado.
  • Foi encontrado um wchar_t que não corresponde a um caractere válido na localidade C atual.
  • o número máximo de caracteres largos foi convertido.

Parâmetros wcstombs ()

  • dest: Ponteiro para a matriz de caracteres multibyte resultante.
  • src: Ponteiro para o primeiro elemento do caractere largo que é convertido em caractere multibyte.
  • max: Número máximo de caracteres largos a serem convertidos.

wcstombs () Valor de retorno

  • Se a conversão for bem-sucedida, wcstombs () retorna o número de caracteres multibyte 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 wcstombs ()?

 #include #include using namespace std; int main() ( wchar_t src() = L"Welcome To Programiz.com"; char dest(50); int num; num = wcstombs(dest, src, 50); cout << "Number of wide character converted = " << num << endl; cout << "Multibyte Character String = " << dest << endl; return 0; )

Quando você executa o programa, uma possível saída será:

 Número de caracteres largos convertidos = 24 String de caracteres multibyte = Bem-vindo ao Programiz.com

Artigos interessantes...