strcoll
funzioni
Ognuna delle funzioni strcoll
e wcscoll
confronta due stringhe in base all'impostazione della categoria di LC_COLLATE
della tabella codici delle impostazioni locali in uso. Ognuna delle funzioni _mbscoll
confronta due stringhe in base all'impostazione della tabella codici multibyte delle impostazioni locali in uso. Usare le coll
funzioni per i confronti tra stringhe quando esiste una differenza tra l'ordine del set di caratteri e l'ordine dei caratteri lessicografici nella tabella codici corrente se la differenza è di interesse per il confronto. Usare le funzioni cmp
corrispondenti per eseguire il test per testare solo per l'uguaglianza di stringhe.
Funzioni strcoll
SBCS | Unicode | Multibyte Character Set | Descrizione |
---|---|---|---|
strcoll |
wcscoll |
_mbscoll |
Collaziona due stringhe |
_stricoll |
_wcsicoll |
_mbsicoll |
Collaziona due stringhe senza distinzione tra maiuscole e minuscole |
_strncoll |
_wcsncoll |
_mbsncoll |
Collaziona i primi count caratteri di due stringhe |
_strnicoll |
_wcsnicoll |
_mbsnicoll |
Collaziona i primi count caratteri di due stringhe senza distinzione tra maiuscole e minuscole |
Osservazioni:
Le versioni a caratteri a un byte (SBCS) di queste funzioni (strcoll
, stricoll
, _strncoll
e _strnicoll
) confrontano string1
e string2
in base all'impostazione della categoria LC_COLLATE
delle impostazioni locali correnti. Queste funzioni sono diverse dalle corrispondenti funzioni strcmp
, in quanto le funzioni strcoll
usano le informazioni della tabella codici delle impostazioni locali che forniscono sequenze di collazione. Per i confronti di stringhe nelle impostazioni locali in cui l'ordine del set di caratteri e l'ordine lessicografico dei caratteri differiscono, devono essere usate le funzioni strcoll
anziché le funzioni strcmp
corrispondenti. Per altre informazioni su LC_COLLATE
, vedere setlocale
.
Per alcune tabelle codici e per i set di caratteri corrispondenti, l'ordine dei caratteri nel set di caratteri può differire dall'ordine lessicografico dei caratteri stessi. Nelle impostazioni locali "C" non è il caso: l'ordine dei caratteri nel set di caratteri ASCII è uguale 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 in tale istanza, usare strcoll
anziché strcmp
. In alternativa, è possibile utilizzare strxfrm
sulle stringhe originali, quindi usare strcmp
sulle stringhe risultanti.
strcoll
, stricoll
, _strncoll
e _strnicoll
gestiscono automaticamente stringhe di caratteri multibyte in base alla tabella codici delle impostazioni locali attualmente in uso, analogamente alle rispettive controparti a caratteri wide (Unicode). Le versioni a caratteri multibyte (MBCS) di queste funzioni, tuttavia, riordinano le stringhe in base ai caratteri secondo la tabella codici multibyte in uso.
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 tra stringhe.
Vedi anche
impostazioni locali
Manipolazione delle stringhe
localeconv
_mbsnbcoll
, _mbsnbcoll_l
, _mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, wcscmp
, _mbscmp
strncmp
, wcsncmp
, _mbsncmp
_mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
_mbsnicmp_l
strxfrm
, wcsxfrm
, _strxfrm_l
_wcsxfrm_l