Condividi tramite


strcoll funzioni

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