Condividi tramite


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

Vedere anche

Riferimenti

Classificazione di caratteri

Impostazioni locali

Interpretazione di sequenze di caratteri multibyte

_mbccpy, _mbccpy_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l