Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Converta um caractere largo UTF-16 ou UTF-32 em um caractere multibyte UTF-8.
Sintaxe
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Parâmetros
mbchar
Ponteiro para uma matriz para armazenar o caractere multibyte UTF-8 convertido.
wchar
Um caractere largo a ser convertido.
state
Um ponteiro para um objeto mbstate_t.
Valor retornado
O número de bytes armazenados no objeto de matriz mbchar, incluindo quaisquer sequências de deslocamento. Se wchar não for um caractere largo válido, o valor (size_t)(-1) será retornado, errno será definido como EILSEQe o valor de state não será especificado.
Comentários
A c16rtomb função converte o caractere wchar LE UTF-16 na sequência de caracteres estreitos multibyte UTF-8 equivalente. Se mbchar não for um ponteiro nulo, a função armazenará a sequência convertida no objeto de matriz apontado por mbchar. Até MB_CUR_MAX bytes são armazenados em mbchar e state é definido como o estado de deslocamento multibyte resultante.
Se wchar for um caractere largo nulo, uma sequência necessária para restaurar o estado de deslocamento inicial será armazenada, se necessário, seguida pelo caractere nulo. state é definido como o estado de conversão inicial. A função c32rtomb é idêntica, mas converte um caractere UTF-32.
Se mbchar for um ponteiro nulo, o comportamento será equivalente a uma chamada para a função que substitui um buffer interno para mbchar e um caractere nulo largo para wchar.
O objeto de estado de conversão state permite que você faça chamadas subsequentes para essa função e outras funções reiniciáveis que mantenham o estado de deslocamento dos caracteres de saída multibyte. Os resultados são indefinidos quando você combina o uso de funções reiniciáveis e não reiniciáveis.
Para converter caracteres UTF-16 em caracteres multibyte não UTF-8, use as funções ,_wcstombs_l , wcstombs_s ou _wcstombs_s_l.wcstombs
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
c16rtomb, c32rtomb |
C, C++: <uchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Conversão de dados
Localidade
Interpretação de sequências de caracteres multibyte
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s