_mbclen, mblen, _mblen_l
Ottiene la lunghezza e determina la validità di un carattere multibyte.
![]() |
---|
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
Caratteri multibyte.mbstr
Indirizzo di una sequenza di byte di caratteri multibyte.count
Numero di byte da controllare.locale
Impostazioni locali da utilizzare.
Valore restituito
_mbclen restituisce 1 o 2, a seconda di come il carattere multibyte c in 1 o 2 byte.Nessun ritorno di errore per _mbclen.Se mbstr non è NULL, mblen restituisce la lunghezza, in byte, di caratteri multibyte.Se mbstr è NULL o specifica il carattere null a caratteri estesi, restituisce 0 di mblen.Se l'oggetto che punta mbstr non costituisce un carattere multibyte valido nei primi caratteri di count, mblen restituisce a 1.
Note
La funzione di _mbclen restituisce la lunghezza, in byte, di caratteri multibyte c.Se c non indica byte iniziale di un carattere multibyte determinato da una chiamata implicita a _ismbblead, il risultato di _mbclen è imprevedibile.
mblen restituisce la lunghezza in byte di mbstr se è un carattere multibyte valido e determina la validità di caratteri multibyte associata alla tabella codici.mblen esamina count o meno byte contenuti in mbstr, ma non più dei byte di MB_CUR_MAX.
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 a 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à nell'introduzione.
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.
Vedere anche
Riferimenti
Interpretazione delle sequenze di caratteri multibyte
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l