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 |
---|---|---|---|
Confronta due stringhe |
|||
Confronta due stringhe (senza distinzione tra maiuscole e minuscole) |
|||
Riordina i primi caratteri count di due stringhe |
|||
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
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l