mbtowc, _mbtowc_l

Convierte un carácter multibyte a un carácter ancho correspondiente.

int mbtowc(
   wchar_t *wchar,
   const char *mbchar,
   size_t count 
);
int _mbtowc_l(
   wchar_t *wchar,
   const char *mbchar,
   size_t count,
   _locale_t locale
);

Parámetros

  • wchar
    dirección de un carácter ancho (tipo wchar_t).

  • mbchar
    Dirección de una secuencia de bytes (un carácter multibyte).

  • recuento
    Número de bytes que se va a comprobar.

  • configuración regional
    la configuración regional a utilizar.

Valor devuelto

Si mbchar no es NULL y si el objeto que mbchar señala a los formularios un carácter válido multibyte, mbtowc devuelve la longitud en bytes de caracteres multibyte.Si mbchar es NULL o el objeto al que señala es un carácter null de caracteres anchos (L' \ 0 '), la función devuelve 0.Si el objeto que mbchar elija no forma un carácter válido multibyte dentro de los primeros caracteres de recuento , devuelve – 1.

Comentarios

La función de mbtowc convierte el recuento o menos bytes indicada por mbchar, si mbchar no es NULL, un carácter ancho correspondiente.mbtowc almacena el carácter ancho resultante en wchar, si es wchar no es NULL.mbtowc no examina más que los bytes de MB_CUR_MAX .mbtowc utiliza la configuración regional actual para el comportamiento configuración; dependientes _mbtowc_l es idéntico pero utiliza la configuración regional pasado en su lugar.Para obtener más información, vea Configuración regional.

Requisitos

rutina

Encabezado necesario

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

bibliotecas

todas las versiones de Bibliotecas en tiempo de ejecución de C.

Ejemplo

// crt_mbtowc.c
/* Illustrates the behavior of the mbtowc function
 */

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int      i;
    char    *pmbc    = (char *)malloc( sizeof( char ) );
    wchar_t  wc      = L'a';
    wchar_t *pwcnull = NULL;
    wchar_t *pwc     = (wchar_t *)malloc( sizeof( wchar_t ) );
    printf( "Convert a wide character to multibyte character:\n" );
    wctomb_s( &i, pmbc, sizeof(char), wc );
    printf( "  Characters converted: %u\n", i );
    printf( "  Multibyte character: %x\n\n", *pmbc );

    printf( "Convert multibyte character back to a wide "
            "character:\n" );
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "  Bytes converted: %u\n", i );
    printf( "  Wide character: %x\n\n", *pwc );
    printf( "Attempt to convert when target is NULL\n" );
    printf( "  returns the length of the multibyte character:\n" );
    i = mbtowc( pwcnull, pmbc, MB_CUR_MAX );
    printf( "  Length of multibyte character: %u\n\n", i );

    printf( "Attempt to convert a NULL pointer to a" );
    printf( " wide character:\n" );
    pmbc = NULL;
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "  Bytes converted: %u\n", i );
}

Output

Convert a wide character to multibyte character:
  Characters converted: 1
  Multibyte character: 61

Convert multibyte character back to a wide character:
  Bytes converted: 1
  Wide character: 61

Attempt to convert when target is NULL
  returns the length of the multibyte character:
  Length of multibyte character: 1

Attempt to convert a NULL pointer to a wide character:
  Bytes converted: 0

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

Conversión de datos

MultiByteToWideChar

Configuración regional

Interpretación de secuencias de Multibyte- Carácter

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l