mbtowc, _mbtowc_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Convertir un caractère multioctet en un caractère large 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 large (type wchar_t).

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

nombre
Nombre d'octets à vérifier.

paramètres régionaux
Paramètres régionaux à utiliser.

Si mbchar n’est pas NULL et si l’objet qui mbchar pointe vers les formulaires un caractère multioctet valide, mbtowc renvoie la longueur en octets du caractère multioctets. Si mbchar est NULL ou l’objet vers lequel il pointe est un caractère null de caractères larges (L '\0'), la fonction retourne 0. Si l’objet qui mbchar pointe vers ne forment pas un caractère multioctet valide dans le premier nombre caractères, elle retourne -1.

Le mbtowc fonction convertit nombre ou un nombre d’octets indiqué par mbcharsi mbchar n’est pas NULL, un caractère large correspondant. mbtowcstocke le caractère large qui en résulte à wchar, si wchar n’est pas NULL. mbtowcn’examine pas plus de MB_CUR_MAX octets. mbtowcutilise les paramètres régionaux actuels pour un comportement dépendant des paramètres régionaux ; _mbtowc_l est identique, sauf qu’elle utilise les paramètres régionaux passé à la place. Pour plus d’informations, consultez Locale.

RoutineEn-tête requis
mbtowc<stdlib.h>
_mbtowc_l<stdlib.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

Toutes les versions des bibliothèques Runtime C.

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

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  

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

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

Afficher: