Condividi tramite


_mbclen, mblen, _mblen_l

Ottiene la lunghezza e determina la validità di un carattere multibyte.

Nota importanteImportante

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

Classificazione dei caratteri

Impostazioni locali

Interpretazione delle sequenze di caratteri multibyte

_mbccpy, _mbccpy_l

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l