다음을 통해 공유


strcoll 함수

각 strcoll 와 wcscoll 함수는 현재 사용하는 로캘 코드 페이지의 LC_COLLATE 범주 설정에 따라 두 문자열을 비교합니다. 각각의 _mbscoll 함수는 현재 사용중인 멀티 바이트 코드 페이지에 따라 두 문자열을 비교합니다. 비교에 대한 인터넷의 차이점과 현제 코드 페이지에서 사전순 문자 순서와 문자집합 순서사에서 다른점이 있을때, 문자열 비교에 대한 coll을 사용합니다. 문자열 동일성에 대해 테스트에 대해 해당 cmp 함수들을 사용합니다.

strcoll 함수

SBCS

유니코드(Unicode)

MBCS

설명

strcoll

wcscoll

_mbscoll

두 문자열들을 분석합니다.

_stricoll

_wcsicoll

_mbsicoll

두 개의 문자열 (대/소문자 구분 없이)을 분석합니다.

_strncoll

_wcsncoll

_mbsncoll

두 문자열의 첫 count 문자를 분석합니다.

_strnicoll

_wcsnicoll

_mbsnicoll

(인식하지 않는 경우) 두 문자열의 첫 count 문자들을 분석합니다.

설명

이러한 함수들(strcoll, stricoll, _strncoll 과 _strnicoll)의 싱글바이트 문자(SBCS) 버전은 string1 과 string2 을 현재 범주의 LC_COLLATE 범주 설정에따라 비교합니다. 이러한 함수는 대조 시퀀스를 제공하는 로캘 코드 페이지를 사용하는 strcoll 함수들에서 해당 strcmp 함수들과는 다릅니다. 문자열 집합 순서와 사전 순서상 문자 순서가 다른 로캘들에서 문자열 비교는, strcmp 함수들보다는 strcoll 함수들을 사용해야합니다. LC_COLLATE 에 대한 자세한 내용은 setlocale 를 참조하십시오.

일부 코드 페이지와 해당 문자 집합에 대한 문자 집합에, 문자의 순서 lexicographic 문자 순서와에서 다를 수 있습니다. "C" 로케일에서 이 경우가 아니라면: ASCII 문자 집합의 문자 순서는 문자 lexicographic 순서와 동일합니다. 그러나 특정 유럽 코드 페이지에서 예를 들어, 문자 'a' (값 0x61) 앞 문자 'ä' (0xE4)의 값은 문자 집합, 그러나 사전 순으로 문자를 제외한 문자 'ä' 앞에 'a' 입니다. 이러한 상황에서 사전순서상의 비교를 수행하려면 strcmp 대신 strcoll 를 사용하세요. 결과 문자열에 strcmp을 사용하는 것 대신에, 원본 문자열에 strxfrm를 사용할 수 있습니다.

strcoll, stricoll, _strncoll 과 _strnicoll 는 자동적으로 사용하는 현재 로캘 코드페이지에 따라 와이드 문자(유니코드) 대응으로써, 멀티바이트 문자열을 처리합니다. 그러나, 이러한 함수의 멀티 바이트 문자(MBCS) 버전은 현재 사용 중인 멀티 바이트 코드 페이지에 따라 문자 단위로 합쳐집니다.

이 coll 함수는 사전순으로 비교한 문자열을 비교하기 때문에, cmp 함수는 같은 문자열을 쉽게 테스트하는 것 인데도 coll 함수는 같은 cmp 버전보다 더 많이 느립니다. 그럼에도, 문자 사이는 차이점이 현재 코드 페이지에 순서와 lexicographic 문자 순서 설정 및 문자열 비교에 대한 관심의 차이가 있는 경우에 coll 함수를 사용해야 합니다.

참고 항목

참조

로캘

문자열 조작(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