wctomb
, _wctomb_l
Convierte un carácter ancho en el carácter multibyte correspondiente. Hay disponibles versiones más seguras de estas funciones; consulte wctomb_s
, _wctomb_s_l
.
Sintaxis
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Parámetros
mbchar
Dirección de un carácter multibyte.
wchar
Carácter ancho.
Valor devuelto
Si wctomb
convierte el carácter ancho en un carácter multibyte, devuelve el número de bytes (que nunca es mayor que MB_CUR_MAX
) en el carácter ancho. Si wchar
es el carácter nulo ancho (L'\0'), wctomb
devuelve 1. Si el puntero mbchar
de destino es NULL
, wctomb
devuelve 0. Si la conversión no es posible en la configuración regional actual, wctomb
devuelve -1 y errno
se establece EILSEQ
en .
Comentarios
La función wctomb
convierte su argumento wchar
en el carácter multibyte correspondiente y almacena el resultado en mbchar
. Puede llamar a la función desde cualquier ubicación de cualquier programa. wctomb
usa la configuración regional actual para cualquier comportamiento dependiente de la configuración regional; _wctomb_l
es igual que wctomb
, salvo que en su lugar usa la configuración regional pasada. Para obtener más información, vea Locale.
wctomb
valida sus parámetros. Si mbchar
es NULL
, se invoca el controlador de parámetros no válidos, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
se establece en EINVAL
y la función devuelve -1.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
wctomb |
<stdlib.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Este programa muestra el comportamiento de la función 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
Consulte también
Conversión de datos
Configuración regional
_mbclen
, , mblen
, _mblen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
wcstombs
, _wcstombs_l
WideCharToMultiByte