strcoll
işlevleri
ve wcscoll
işlevlerinin strcoll
her biri, şu anda kullanımda olan LC_COLLATE
yerel ayar kodu sayfasının kategori ayarına göre iki dizeyi karşılaştırır. İşlevlerin _mbscoll
her biri, kullanılmakta olan çok baytlı kod sayfasına göre iki dizeyi karşılaştırır. coll
Karakter kümesi sırası ile karşılaştırmanın ilgi çekici olduğu durumlarda geçerli kod sayfasındaki sözcüksel karakter sırası arasında bir fark olduğunda dize karşılaştırmaları için işlevlerini kullanın. Yalnızca dize eşitliğini test etmek için karşılık gelen cmp
işlevleri kullanın.
strcoll İşlevleri
SBCS | Unicode | MBCS | Açıklama |
---|---|---|---|
strcoll |
wcscoll |
_mbscoll |
İki dizeyi harmanlama |
_stricoll |
_wcsicoll |
_mbsicoll |
İki dizeyi harmanlama (büyük/küçük harfe duyarsız) |
_strncoll |
_wcsncoll |
_mbsncoll |
İki dizenin ilk count karakterlerini harmanlama |
_strnicoll |
_wcsnicoll |
_mbsnicoll |
İki dizenin ilk count karakterlerini harmanlama (büyük/küçük harfe duyarsız) |
Açıklamalar
Bu işlevlerin (, , ve ) tek baytlık karakter (strcoll
SBCS) sürümleri, geçerli yerel ayarın LC_COLLATE
kategori ayarına göre karşılaştırırstring1
.string2
_strnicoll
_strncoll
stricoll
Bu işlevler, işlevlerin strcoll
harmanlama dizileri sağlayan yerel ayar kodu sayfası bilgilerini kullanması bakımından ilgili strcmp
işlevlerden farklıdır. Karakter kümesi sırasının ve sözcüksel karakter sırasının farklı olduğu yerel ayarlardaki dize karşılaştırmaları için, strcoll
ilgili strcmp
işlevler yerine işlevler kullanılmalıdır. hakkında LC_COLLATE
daha fazla bilgi için bkz setlocale
. .
Bazı kod sayfaları ve buna karşılık gelen karakter kümeleri için karakter kümesindeki karakterlerin sırası sözcüksel karakter sırasına göre farklılık gösterebilir. "C" yerel ayarında durum böyle değildir: ASCII karakter kümesindeki karakterlerin sırası, karakterlerin sözcük düzeniyle aynıdır. Ancak, bazı Avrupa kod sayfalarında, örneğin, 'a' karakteri (değer 0x61) karakter kümesindeki 'ä' karakterinin (değer 0xE4) önüne, 'ä' karakteri ise sözcüksel olarak 'a' karakterinin önündedir. Böyle bir örnekte sözcüksel karşılaştırma gerçekleştirmek için yerine strcmp
kullanınstrcoll
. Alternatif olarak, özgün dizelerde kullanabilir strxfrm
ve ardından sonuçta elde edilen dizelerde kullanabilirsiniz strcmp
.
strcoll
, stricoll
, _strncoll
ve _strnicoll
çok baytlı dizeleri, geniş karakterli (Unicode) karşılıkları gibi, kullanılmakta olan yerel ayar kodu sayfasına göre otomatik olarak işler. Ancak bu işlevlerin çok baytlı (MBCS) sürümleri, şu anda kullanımda olan çok baytlı kod sayfasına göre dizeleri karakter temelinde harmanlar.
coll
İşlevler karşılaştırma için dizeleri sözcüksel olarak harmanladığı için, cmp
işlevler yalnızca dize eşitliğini test ettiğindencoll
, işlevler ilgili cmp
sürümlerden çok daha yavaştır. Bu nedenle coll
, işlevler yalnızca geçerli kod sayfasındaki karakter kümesi sırası ile sözcüksel karakter sırası arasında bir fark olduğunda kullanılmalıdır ve bu fark dize karşılaştırması için ilgi çekicidir.
Ayrıca bkz.
Yerel ayar
Dize işleme
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