C ++ wcrtomb () - Biblioteca padrão C ++

A função wcrtomb () em C ++ converte um caractere largo em sua representação multibyte estreita.

O wcrtomb () é definido no arquivo de cabeçalho.

protótipo wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

A função wcrtomb () converte o caractere largo representado por wc em um caractere multibyte estreito e é armazenado no endereço apontado por s.

  • Se s não for um ponteiro nulo, a função wcrtomb () determina o número máximo de bytes necessários para armazenar a representação multibyte de wc e o armazena no local de memória apontado por s. Um máximo de MB_CUR_MAX bytes podem ser gravados. O valor de ps é atualizado conforme necessário.
  • Se s é um ponteiro nulo, a chamada é equivalente a wcrtomb(buf, L'', ps)para algum buffer interno buf.
  • Se wc == L'', um byte nulo é armazenado.

Parâmetros wcrtomb ()

  • s: Ponteiro para a matriz de caracteres multibyte para armazenar o resultado.
  • wc: Caractere largo para converter.
  • ps: Ponteiro para o estado de conversão usado ao interpretar a string multibyte

wcrtomb () Valor de retorno

  • Em caso de sucesso, a função wcrtomb () retorna o número de bytes gravados na matriz de caracteres cujo primeiro elemento é apontado por s.
  • Em caso de falha (ou seja, wc não é um caractere largo válido), ele retorna -1, errno é definido como EILSEQ e deixa * ps no estado não especificado.

Exemplo: Como funciona a função wcrtomb ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

Artigos interessantes...