Share via


mbtowc, _mbtowc_l

Convertissez un caractère multioctets à un caractère élargi correspondant.

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
);

Paramètres

  • wchar
    Adresse d'un caractère élargi (type wchar_t).

  • mbchar
    Adresse d'une séquence d'octets (un caractère multioctets).

  • nombre
    Nombre d'octets à vérifier.

  • paramètres régionaux
    Les paramètres régionaux à utiliser.

Valeur de retour

Si mbchar n'est pas NULL et si l'objet qu' mbchar indique les formulaires un caractère multioctets valide, mbtowc retourne la longueur en octets du caractère multioctets.Si mbchar est NULL ou l'objet sur lequel il pointe est un caractère Null à caractères larges (L \ 0 '), retourne 0 de fonction.Si l'objet qu' mbchar pointe ne constitue pas un caractère multioctets valide dans les premiers nombres de caractères , il retourne et 1.

Notes

Le convertit de fonction d' mbtowccomptent ou moins octets entrées figurant dans mbchar, si mbchar n'est pas NULL, à un caractère élargi correspondant.mbtowc enregistre le caractère élargi résultant à wchar, si wchar n'est pas NULL.mbtowc ignore plus que des octets d' MB_CUR_MAX .mbtowc utilise les paramètres régionaux définis pour un comportement dépendant des paramètres régionaux ; _mbtowc_l est identique mais il utilise les paramètres régionaux passés à la place.Pour plus d'informations, consultez Paramètres régionaux.

Configuration requise

routine

en-tête requis

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

bibliothèques

toutes les versions de Bibliothèques runtime C.

Exemple

// 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 );
}

Sortie

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

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

Conversion de données

MultiByteToWideChar

Paramètres régionaux

Interprétation des séquences de caractères multioctets

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l