_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