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.
Valor retornado
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 de mbchar
destino for NULL
, wctomb
retornará 0. Se a conversão não for possível na localidade atual, wctomb
retornará -1 e errno
será definida 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âmetro inválido será chamado, 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, confira Estado global no 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