_mbclen, mblen, _mblen_l
Ottiene la lunghezza e determina la validità di un carattere multibyte.
Importante
Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
size_t _mbclen(
const unsigned char *c
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Parametri
c
Carattere multibyte.mbstr
Indirizzo di una sequenza di caratteri multibyte.count
Numero di byte da controllare.locale
Impostazioni locali da utilizzare.
Valore restituito
_mbclen restituisce 1 o 2, a seconda se il carattere multibyte c è di lunghezza 1 o 2 byte. Non viene ritornato nessun errore per _mbclen. Se mbstr non è NULL, mblen restituisce la lunghezza, in byte, di caratteri multibyte. Se mbstr è NULL o punta ad un carattere null di tipo "wide", mblen restituisce 0. Se l'oggetto a cui punta mbstr non forma un valido carattere multibyte nei primi count caratteri, mblen restituisce –1.
Note
La funzione _mbclen restituisce la lunghezza, in byte, dei caratteri multibyte c. Se c non indica il byte di apertura di un carattere multibyte determinato da una chiamata implicita a _ismbblead, il risultato _mbclen è imprevedibile.
mblen restituisce la lunghezza in byte di mbstr se è un carattere multibyte valido e determina la validità dei caratteri multibyte associati alla tabella codici. mblen esamina count oppure un numero di byte minore contenuti in mbstr, ma non più di MB_CUR_MAX byte.
Il valore di output è interessato dall'impostazione dell'impostazione di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni. Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato. Per ulteriori informazioni, vedere Impostazioni locali.
Mapping di routine su testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tclen |
Mapping della macro o della funzione inline |
_mbclen |
Mapping della macro o della funzione inline |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Output
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
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.