Condividi tramite


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

Confronta n byte di due stringhe di caratteri multibyte utilizzando le informazioni della tabella codici 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.

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Parametri

  • string1, string2
    Stringhe da confrontare.

  • count
    Numero di byte da confrontare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

Il valore restituito indica la relazione fra le sottostringhe string1 e string2.

Valore restituito

Descrizione

< 0

Sottostringa string1 minore della sottostringa string2.

0

Sottostringa string1 identica alla sottostringa string2.

> 0

Sottostringa string1 superiore alla sottostringa string2.

Se string1 o string2 è NULL o count è maggiore di INT_MAX, iene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono _NLSCMPERROR e impostano errno su EINVAL. Per utilizzare _NLSCMPERROR, includere String.h o Mbstring.h.

Note

Ciascuna di queste funzione raccoglie, al massimo, il primo byte count in string1 e string2 e restituisce un valore che indica la relazione tra le sottostringhe string1 e string2. Se il byte finale della sottostringa di string1 o string2 è un byte di apertura, non viene incluso nel confronto; queste funzioni vengono confrontano solamente i caratteri completi delle sottostringhe. _mbsnbicoll è una versione senza distinzione tra maiuscole e minuscole di _mbsnbcoll. Come _mbsnbcmp e _mbsnbicmp, _mbsnbcoll e _mbsnbicoll confrontano le due stringhe di caratteri multibyte secondo l'ordine lessicografico specificato dalla tabella codici multibyte attualmente in uso.

Per alcune tabelle codici e per il set di caratteri corrispondenti, l'ordine di caratteri nel set di caratteri potrebbe differire dall'ordine dei caratteri lessicografici. Nelle impostazioni locali "C", questo non avviene: l'ordine dei caratteri nel set di caratteri ASCII è identico all'ordine lessicografico dei caratteri. Tuttavia, in alcune tabelle codici Europee, ad esempio, il carattere "a" (valore 0x61) precede il carattere "ä" (valore 0xE4) nel set di caratteri, ma il carattere "ä" precede il carattere lessicografico "a". Per eseguire un confronto lessicografico delle stringhe di byte in tale istanza, utilizzare _mbsnbcoll anziché _mbsnbcmp; per controllare solamente l'uguaglianza della stringa, utilizzare _mbsnbcmp.

Poiché le funzioni coll raccolgono le stringhe lessicografiche per il confronto, mentre le funzioni cmp verificano semplicemente l'uguaglianza della stringa, le funzioni coll sono più lente delle versioni corrispondenti cmp. Pertanto, le funzioni coll devono essere utilizzate solamente quando esiste una differenza tra l'ordine del set di caratteri e l'ordine dei caratteri lessicografici nella tabella codici corrente e questa differenza è particolarmente interessante per il confronto di stringhe.

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

_tcsncoll

_strncoll

_mbsnbcoll

_wcsncoll

_tcsncoll_l

_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l

_mbsnbcoll_l

_wcsncoll_l

_tcsnicoll

_strnicoll

_mbsnbicoll

_wcsnicoll

_tcsnicoll_l

_strnicoll_l

_mbsnbicoll_l

_wcsnicoll_l

Requisiti

Routine

Intestazione obbligatoria

_mbsnbcoll

<mbstring.h>

_mbsnbcoll_l

<mbstring.h>

_mbsnbicoll

<mbstring.h>

_mbsnbicoll_l

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.

Vedere anche

Riferimenti

Modifica di stringhe (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

Funzioni strcoll

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l