Condividi tramite


Funzioni strcoll

Ognuna delle funzioni wcscoll e strcoll confronta due stringhe in base all'impostazione di categoria di LC_COLLATE della tabella codici delle impostazioni locali in uso. Ognuna delle funzioni _mbscoll confronta due stringhe in base alla tabella codici multibyte in uso. Usa le funzioni coll per il confronto tra stringhe quando esiste una differenza tra l'ordine del set di caratteri e l'ordine dei caratteri lessicografico nella tabella codici corrente, questa differenza è particolarmente interessante per il confronto di stringhe. Utilizza le funzioni corrispondenti di cmp per testare solo per l'uguaglianza di stringhe.

Funzioni strcoll

SBCS

Unicode

MBCS

Descrizione

strcoll

wcscoll

_mbscoll

Confronta due stringhe

_stricoll

_wcsicoll

_mbsicoll

Confronta due stringhe (senza distinzione tra maiuscole e minuscole)

_strncoll

_wcsncoll

_mbsncoll

Riordina i primi caratteri count di due stringhe

_strnicoll

_wcsnicoll

_mbsnicoll

Riordina i primi caratteri count di due stringhe (senza distinzione tra maiuscole e minuscole)

Note

Le versioni del carattere a singolo byte (SBCS) di queste funzioni (strcoll, stricoll, _strncoll e _strnicoll) confrontano string1 e string2 secondo l'impostazione di categoria di LC_COLLATE delle impostazioni locali correnti. Queste funzioni sono diverse dalle corrispondenti funzioni di strcmp in quanto le funzioni di strcoll utilizzano le informazioni della tabella codici delle impostazioni locali che forniscono le sequenze di ordinamento. Per i confronti di stringhe nelle impostazioni locali in cui differiscono l'ordine del set di caratteri e l'ordine dei caratteri lessicografico, le funzioni di strcoll devono essere utilizzate anziché funzioni corrispondenti di strcmp. Per ulteriori informazioni su LC_COLLATE, vedere setlocale.

Per alcune tabelle codici e per il set di caratteri corrispondenti, l'ordine di caratteri nel set di caratteri potrebbe differire dall'ordine dei caratteri lessicografici. Nelle impostazioni locali "C", questo non avviene: l'ordine dei caratteri nel set di caratteri ASCII è identico all'ordine lessicografico dei caratteri. Tuttavia, in alcune tabelle codici Europee, ad esempio, il carattere "a" (valore 0x61) precede il carattere "ä" (valore 0xE4) nel set di caratteri, ma il carattere "ä" precede il carattere lessicografico "a". Per eseguire un confronto lessicografico in tale istanza, utilizzare 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 estesi (Unicode). Le versioni di caratteri multibyte (MBCS) di queste funzioni, tuttavia, riordinano le stringhe sui caratteri in base alla tabella codici multibyte in uso.

Poiché le funzioni coll raccolgono le stringhe lessicografiche per il confronto, mentre le funzioni cmp verificano semplicemente l'uguaglianza della stringa, le funzioni coll sono più lente delle versioni corrispondenti cmp. Pertanto, le funzioni coll devono essere utilizzate solamente quando esiste una differenza tra l'ordine del set di caratteri e l'ordine dei caratteri lessicografici nella tabella codici corrente e questa differenza è particolarmente interessante per il confronto di stringhe.

Vedere anche

Riferimenti

Impostazioni locali

Modifica di stringhe (CRT)

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