A função c16rtomb () em C ++ converte a representação de caracteres de 16 bits em uma representação de caracteres multibyte estreita.
A função c16rtomb () é definida no arquivo de cabeçalho.
Protótipo c16rtomb ()
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
A função c16rtomb () converte o caractere utf-16 c16 em seu equivalente multibyte e o armazena no objeto apontado por s.
Se s representa um ponteiro nulo, a chamada é equivalente a c16rtomb (buf, u ' 0', ps) para algum buffer interno buf.
Se c16 for o caractere largo nulo, ou seja, u ' 0', um byte nulo é armazenado.
Parâmetros c16rtomb ()
- s: Ponteiro para uma matriz de caracteres onde o caractere multibyte deve ser armazenado.
- c16: O caractere de 16 bits a ser convertido.
- ps: Um ponteiro para um objeto mbstate_t usado ao interpretar a string multibyte.
c16rtomb () Valor de retorno
- Em caso de sucesso, a função c16rtomb () retorna o número de bytes gravados na matriz de caracteres apontada por s.
- Em caso de falha, -1 é retornado e EILSEQ é armazenado em errno.
Exemplo: Como funciona a função c16rtomb ()?
#include #include using namespace std; int main() ( const char16_t str() = u"Hello World!"; char s(50); mbstate_t ps(); size_t length; int j = 0; while (str(j)) ( length = c16rtomb(s, str(j), &ps); if ((length == 0) || (length> 50)) break; for (int i=0; i
When you run the program, the output will be:
Hello World!