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