Função de biblioteca C - wctomb ()
Descrição
A função da biblioteca C int wctomb(char *str, wchar_t wchar) função converte o caractere largo wchar para sua representação multibyte e armazena-o no início da matriz de caracteres apontada por str.
Declaração
A seguir está a declaração da função wctomb ().
int wctomb(char *str, wchar_t wchar)
Parâmetros
str - Este é o ponteiro para uma matriz grande o suficiente para conter um caractere multibyte,
wchar - Este é o caractere amplo do tipo wchar_t.
Valor de retorno
Se str não for NULL, a função wctomb () retornará o número de bytes que foram gravados na matriz de bytes em str. Se wchar não puder ser representado como uma sequência multibyte, -1 será retornado.
Se str for NULL, a função wctomb () retornará diferente de zero se a codificação não tiver estado de mudança trivial ou zero se a codificação não tiver estado.
Exemplo
O exemplo a seguir mostra o uso da função wctomb ().
#include <stdio.h>
#include <stdlib.h>
int main () {
int i;
wchar_t wc = L'a';
char *pmbnull = NULL;
char *pmb = (char *)malloc(sizeof( char ));
printf("Converting wide character:\n");
i = wctomb( pmb, wc );
printf("Characters converted: %u\n", i);
printf("Multibyte character: %.1s\n", pmb);
printf("Trying to convert when target is NULL:\n");
i = wctomb( pmbnull, wc );
printf("Characters converted: %u\n", i);
/* this will not print any value */
printf("Multibyte character: %.1s\n", pmbnull);
return(0);
}
Vamos compilar e executar o programa acima que produzirá o seguinte resultado -
Converting wide character:
Characters converted: 1
Multibyte character: a
Trying to convert when target is NULL:
Characters converted: 0
Multibyte character: