Funzioni strcoll

Ognuna delle funzioni strcoll e wcscollconfronta 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 funzioni coll per il confronto di stringhe solo quando esiste una differenza nella tabella codici corrente tra l'ordine del set di caratteri e l'ordine lessicografico dei caratteri e quando questa differenza è di particolare 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 MBCS 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

Note

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. Ciò non è vero nelle impostazioni locali "C". L'ordine dei caratteri nel set di caratteri ASCII è lo stesso dell'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. È quindi consigliabile usare le funzioni coll solo se esiste una differenza nella tabella codici corrente tra l'ordine del set di caratteri e l'ordine lessicografico dei caratteri e se questa differenza è di particolare interesse per il confronto delle stringhe.

Vedere anche

Impostazioni locali
Modifica di 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