_mbclen
, , mblen
_mblen_l
, ,_mbclen_l
Obtient la longueur et détermine la validité d’un caractère multioctet.
Important
Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.
Syntaxe
size_t _mbclen(
const unsigned char *c
);
size_t _mbclen_l(
unsigned char const* c,
_locale_t locale
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Paramètres
c
Caractères multioctet.
mbstr
Adresse d’une séquence d’octets de caractères multioctets.
count
Nombre d'octets à vérifier.
locale
Paramètres régionaux à utiliser.
Valeur retournée
_mbclen
et _mbclen_l
retourne 1 ou 2, en fonction de la longueur du caractère c
multioctet . Les fonctions retournent toujours 1 pour UTF-8, qu’il s’agisse c
de multioctets ou non. Il n’y a aucun retour d’erreur pour _mbclen
.
Si mbstr
ce n’est pas NULL
le cas, mblen
et _mblen_l
retournez la longueur, en octets, du caractère multioctet. Les mblen
fonctions et _mblen_l
fonctionnent correctement sur UTF-8 et peuvent retourner une valeur comprise entre 1 et 3. Quand mbstr
est NULL
(ou il pointe vers le caractère null de caractère large) mblen
et _mblen_l
retourne 0. Objet qui mbstr
pointe vers un caractère multioctet valide dans les premiers count
caractères ou mblen
_mblen_l
renvoyer -1.
Notes
La fonction _mbclen
retourne la longueur, en octets, du caractère multioctet c
. S’il c
ne pointe pas vers l’octet principal d’un caractère multioctet (tel que déterminé par un appel implicite à _ismbblead
, le résultat est _mbclen
imprévisible.
mblen
retourne la longueur en octets de mbstr
s’il s’agit d’un caractère multioctet valide. Elle détermine également la validité de caractères multioctets associée à la page de codes. mblen
examine count
octets (ou moins) contenus dans mbstr
, mais pas plus de MB_CUR_MAX
.
La valeur de sortie est affectée par le LC_CTYPE
paramètre de catégorie des paramètres régionaux. Les versions de ces fonctions sans le suffixe _l
utilisent les paramètres régionaux actuels pour ce comportement dépendant des paramètres régionaux. Les _l
versions suffixees se comportent de la même façon, mais elles utilisent le paramètre de paramètres régionaux transmis à la place. Pour plus d’informations, consultez setlocale
et paramètres régionaux.
_mbclen
, _mblen_l
et sont spécifiques à Microsoft, et _mbclen_l
ne font pas partie de la bibliothèque C Standard. Nous vous déconseillons de les utiliser là où vous voulez du code portable. Pour la compatibilité C standard, utilisez mblen
ou mbrlen
utilisez plutôt.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine Tchar.h | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tclen |
Mappe à la macro ou à la fonction inline | _mbclen |
Mappe à la macro ou à la fonction inline |
Spécifications
Routine | En-tête requis |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_mblen.c
/* illustrates the behavior of the mblen function
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
printf( "Convert 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 );
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );
pmbc = NULL;
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}
Convert wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0
Voir aussi
Classification des caractères
Paramètres régionaux
Interprétation des séquences de caractères multioctets
_mbccpy
, _mbccpy_l
mbrlen
strlen
, , wcslen
, _mbslen_l
_mbslen
, , _mbstrlen
_mbstrlen_l