다음을 통해 공유


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll_mbsnbicoll_l

멀티바이트 코드 페이지 정보를 사용하여 n 바이트의 두 멀티바이트 문자열을 비교합니다.

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.

구문

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

매개 변수

string1, string2
비교할 문자열입니다.

count
비교할 바이트 수입니다.

locale
사용할 로캘입니다.

반환 값

반환 값은 string1string2의 부분 문자열 간 관계를 나타냅니다.

반환 값 설명
< 0 string1 부분 문자열이 string2 부분 문자열보다 작습니다.
0 string1 부분 문자열이 string2 부분 문자열과 같습니다.
> 0 string1 부분 문자열이 string2 부분 문자열보다 큽니다.

INT_MAXstring2 count NULL 매개 string1 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 _NLSCMPERROR를 반환하고 errnoEINVAL로 설정합니다. _NLSCMPERROR를 사용하려면 String.h 또는 Mbstring.h를 포함합니다.

설명

이러한 각 함수는 string1string2에서 처음 count 바이트 이하를 대조하고 string1string2의 결과 부분 문자열 간 관계를 나타내는 값을 반환합니다. 부분 문자열의 string1 최종 바이트 또는 string2 리드 바이트인 경우 비교에 포함되지 않습니다. 이러한 함수는 부분 문자열의 전체 문자만 비교합니다. _mbsnbicoll는 대소문자를 구분하지 않는 _mbsnbcoll 버전입니다. _mbsnbcmp_mbsnbicmp와 마찬가지로 _mbsnbcoll_mbsnbicoll은 현재 사용 중인 멀티바이트 코드 페이지에 지정된 사전적 순서에 따라 두 멀티바이트 문자열을 대조합니다.

일부 코드 페이지와 해당 문자 집합의 경우 문자 집합의 문자 순서가 사전적 문자 순서와 다를 수 있습니다. "C" 로캘에서 ASCII 문자 집합의 문자 순서는 문자의 사전순과 같습니다. 예를 들어 특정 유럽 코드 페이지의 문자 집합에서 문자 'a'(값 0x61)는 문자 'ä'(값 0xE4) 앞에 오지만 사전적으로는 문자 'ä'가 'a' 앞에 옵니다. 이러한 상황에서 바이트로 문자열의 사전적 비교를 수행하려면 _mbsnbcmp 대신 _mbsnbcoll을 사용하고, 문자열이 같은지 여부만 확인하려면 _mbsnbcmp를 사용하세요.

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

출력 값은 로캘의 LC_CTYPE 범주 설정에 영향을 받습니다. 자세한 내용은 setlocale를 참조하세요. _l 접미사가 없는 이러한 함수 버전은 이 로캘 종속 동작에 현재 로캘을 사용하며, _l 접미사가 있는 버전은 전달된 로캘 매개 변수를 대신 사용하는 경우를 제외하고는 동일합니다. 자세한 내용은 Locale을 참조하세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

Tchar.h 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcsncoll _strncoll _mbsnbcoll _wcsncoll
_tcsncoll_l _strncoll_l _mbsnbcoll_l _wcsncoll_l
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

요구 사항

루틴에서 반환된 값 필수 헤더
_mbsnbcoll <mbstring.h>
_mbsnbcoll_l <mbstring.h>
_mbsnbicoll <mbstring.h>
_mbsnbicoll_l <mbstring.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

문자열 조작
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcoll 함수
strncmp, wcsncmp, _mbsncmp_mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l_mbsnicmp_l