다음을 통해 공유


strcoll 함수

strcollwcscoll 함수는 현재 사용 중인 로캘 코드 페이지의 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(싱글바이트 문자) 버전은 현재 로캘의 LC_COLLATE 범주 설정에 따라 string1string2를 비교합니다. 이러한 함수는 strcoll 함수가 데이터 정렬 시퀀스를 제공하는 로캘 코드 페이지 정보를 사용한다는 측면에서 해당 strcmp 함수와 다릅니다. 문자 집합 순서와 사전적 문자 순서가 다른 로캘에서 문자열을 비교하는 경우 해당 strcmp 함수가 아닌 strcoll 함수를 사용해야 합니다. LC_COLLATE에 대한 자세한 내용은 setlocale를 참조하세요.

일부 코드 페이지와 해당 문자 집합의 경우 문자 집합의 문자 순서가 사전적 문자 순서와 다를 수 있습니다. "C" 로캘에서는 그렇지 않습니다. ASCII 문자 집합의 문자 순서는 문자의 사전순과 같습니다. 예를 들어 특정 유럽 코드 페이지의 문자 집합에서 문자 'a'(값 0x61)는 문자 'ä'(값 0xE4) 앞에 오지만 사전적으로는 문자 'ä'가 'a' 앞에 옵니다. 이러한 인스턴스에서 사전적 비교를 수행하려면 strcmp 대신 strcoll을 사용합니다. 또는 원본 문자열에 strxfrm를 사용한 다음 결과 문자열에 strcmp을 사용할 수 있습니다.

strcollstricoll, _strncoll_strnicoll은 해당 와이드 문자(유니코드) 요소와 마찬가지로 현재 사용 중인 로캘 코드 페이지에 따라 멀티바이트 문자열을 자동으로 처리합니다. 그러나 이러한 함수의 MBCS(멀티 바이트 문자) 버전은 현재 사용 중인 멀티바이트 코드 페이지에 따라 문자 단위로 문자열을 비교합니다.

coll 함수는 문자열을 비교하기 위해 사전적으로 대조하는 반면 cmp 함수는 문자열이 같은지 여부만 테스트하므로 coll 함수는 해당 cmp 버전보다 훨씬 더 느립니다. 따라서 함수는 coll 현재 코드 페이지에서 문자 집합 순서와 어휘집 문자 순서 사이에 차이가 있고 문자열 비교에 이 차이가 있는 경우에만 사용해야 합니다.

참고 항목

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