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: