wctomb, _wctomb_l

Converter um caractere largo no caractere multibyte correspondente. Versões mais seguras dessas funções estão disponíveis; confira wctomb_s, _wctomb_s_l.

Sintaxe

int wctomb(
   char *mbchar,
   wchar_t wchar
);
int _wctomb_l(
   char *mbchar,
   wchar_t wchar,
   _locale_t locale
);

Parâmetros

mbchar
O endereço de um caractere multibyte.

wchar
Um caractere largo.

Retornar valor

Se wctomb converter o caractere largo em um caractere multibyte, ele retornará o número de bytes (que nunca será maior que MB_CUR_MAX) no caractere largo. Se wchar for o caractere nulo de caractere largo (L'\0'), wctomb retornará 1. Se o ponteiro mbchar de destino for NULL, wctomb retornará 0. Se a conversão não for possível na localidade atual, wctomb retornará -1 e errno será definido como EILSEQ.

Comentários

A função wctomb converte seu argumento wchar no caractere multibyte correspondente e armazena o resultado em mbchar. Você pode chamar a função de qualquer ponto, em qualquer programa. wctomb usa a localidade atual de qualquer comportamento dependente da localidade; _wctomb_l é idêntico a wctomb, exceto que, em vez disso, ele usa a localidade passada. Para obter mais informações, consulte Localidade.

wctomb valida seus parâmetros. Se mbchar for NULL, o manipulador de parâmetros inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, errno será definido como EINVAL e a função retornará -1.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Requisitos

Rotina Cabeçalho necessário
wctomb <stdlib.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Este programa ilustra o comportamento da função wctomb.

// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int i;
   wchar_t wc = L'a';
   char *pmb = (char *)malloc( MB_CUR_MAX );

   printf( "Convert a wide character:\n" );
   i = wctomb( pmb, wc ); // C4996
   // Note: wctomb is deprecated; consider using wctomb_s
   printf( "   Characters converted: %u\n", i );
   printf( "   Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
   Characters converted: 1
   Multibyte character: a

Confira também

Conversão de dados
Localidade
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte