Compartir a través de


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 EILSEQen .

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