_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll_mbsnbicoll_l

Confronta n byte di due stringhe di caratteri multibyte usando le informazioni della tabella codici multibyte.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

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

Valore restituito

Il valore restituito indica la relazione delle sottostringhe di string1 e string2.

Valore restituito Descrizione
< 0 La sottostringa di string1 è minore della sottostringa di string2.
0 La sottostringa di string1 è identica alla sottostringa di string2.
> 0 La sottostringa di string1 è maggiore della sottostringa di string2.

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

Osservazioni:

Ognuna di queste funzioni collaziona, al massimo, i primi count byte in string1 e string2, quindi restituisce un valore che indica la relazione tra le sottostringhe risultanti di string1 e string2. Se il byte finale nella sottostringa di string1 o string2 è un byte iniziale, non viene incluso nel confronto. Queste funzioni confrontano solo i caratteri completi nelle sottostringhe. _mbsnbicoll è una versione di _mbsnbcoll che non fa distinzione tra maiuscole e minuscole. Come _mbsnbcmp e _mbsnbicmp, _mbsnbcoll e _mbsnbicoll collazionano le due stringhe di caratteri multibyte in base all'ordine lessicografico specificato dalla tabella codici multibyte in uso.

Per alcune tabelle codici e i set di caratteri corrispondenti, l'ordine dei caratteri nel set di caratteri può differire dall'ordine lessicografico dei caratteri. Nelle impostazioni locali "C", l'ordine dei caratteri nel set di caratteri ASCII corrisponde all'ordine lessicografico dei caratteri. In alcune tabelle codici europee, tuttavia, il carattere "a" (valore 0x61) precede il carattere "ä" (valore 0xE4) nel set di caratteri, ma il carattere "ä" precede lessicograficamente il carattere "a". Per eseguire un confronto lessicografico delle stringhe in base ai byte in questo caso, usare _mbsnbcoll anziché _mbsnbcmp. Per controllare solo l'uguaglianza delle stringhe, usare _mbsnbcmp.

Dato che le funzioni coll collazionano le stringhe a livello lessicografico per il confronto, mentre le funzioni cmp testano semplicemente le stringhe per verificarne l'uguaglianza, le funzioni coll sono molto più lente delle versioni cmp corrispondenti. Pertanto, le coll funzioni devono essere usate solo quando esiste una differenza tra l'ordine del set di caratteri e l'ordine lessicografico dei caratteri nella tabella codici corrente e questa differenza è di interesse per il confronto.

Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE della categoria delle impostazioni locali. Per ulteriori informazioni, vedere setlocale. Le versioni di queste funzioni senza il suffisso _l usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il suffisso _l sono identiche ma usano il parametro passato relativo alle impostazioni locali. Per altre informazioni, vedere Locale.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine Tchar.h _UNICODE e _MBCS non definito _MBCS definito _UNICODE definito
_tcsncoll _strncoll _mbsnbcoll _wcsncoll
_tcsncoll_l _strncoll_l _mbsnbcoll_l _wcsncoll_l
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

Requisiti

Ciclo Intestazione obbligatoria
_mbsnbcoll <mbstring.h>
_mbsnbcoll_l <mbstring.h>
_mbsnbicoll <mbstring.h>
_mbsnbicoll_l <mbstring.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Manipolazione delle stringhe
_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