Share via


CompareStringA 함수(winnls.h)

식별자로 지정된 로캘 에 대해 두 문자 문자열을 비교합니다.

주의CompareString을 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 올바르게 비교되지 않은 문자열은 잘못된 입력을 생성할 수 있습니다. 예를 들어 이진 표현에서 고유한 두 문자열은 언어적으로 동일할 수 있으므로 비언어적 비교에 사용할 때 함수는 보안 문제를 제기할 수 있습니다. 애플리케이션은 문자열을 사용하기 전에 유효성을 테스트해야 하며 오류 처리기를 제공해야 합니다. 자세한 내용은 보안 고려 사항: 국가별 기능을 참조하세요.
 
참고 유니코드와의 호환성을 위해 애플리케이션은 CompareStringEx 또는 CompareString의 유니코드 버전을 선호해야 합니다. CompareStringEx를 선호하는 또 다른 이유는 Microsoft가 상호 운용성을 위해 새 로캘에 대한 로캘 식별자 대신 로캘 이름을 사용하도록 마이그레이션하기 때문입니다. Windows Vista 이상에서만 실행되는 모든 애플리케이션은 CompareStringEx를 사용해야 합니다.
 

구문

int CompareStringA(
  [in] LCID   Locale,
  [in] DWORD  dwCmpFlags,
  [in] PCNZCH lpString1,
  [in] int    cchCount1,
  [in] PCNZCH lpString2,
  [in] int    cchCount2
);

매개 변수

[in] Locale

비교에 사용되는 로캘의 로캘 식별자입니다. MAKELCID 매크로를 사용하여 로캘 식별자를 만들거나 다음 미리 정의된 값 중 하나를 사용할 수 있습니다.

[in] dwCmpFlags

함수가 두 문자열을 비교하는 방법을 나타내는 플래그입니다. 자세한 정의는 CompareStringExdwCmpFlags 매개 변수를 참조하세요.

[in] lpString1

비교할 첫 번째 문자열에 대한 포인터입니다.

[in] cchCount1

종료 null 문자를 제외하고 lpString1로 표시된 문자열의 길이입니다. 이 값은 함수의 ANSI 버전에 대한 바이트 및 유니코드 버전의 와이드 문자를 나타냅니다. 문자열이 null로 종료된 경우 애플리케이션에서 음수 값을 제공할 수 있습니다. 이 경우 함수는 길이를 자동으로 결정합니다.

[in] lpString2

비교할 두 번째 문자열에 대한 포인터입니다.

[in] cchCount2

종료 null 문자를 제외하고 lpString2로 표시된 문자열의 길이입니다. 이 값은 함수의 ANSI 버전에 대한 바이트 및 유니코드 버전의 와이드 문자를 나타냅니다. 문자열이 null로 종료된 경우 애플리케이션에서 음수 값을 제공할 수 있습니다. 이 경우 함수는 길이를 자동으로 결정합니다.

반환 값

CompareStringEx에 설명된 값을 반환합니다.

설명

CompareStringEx에 대한 설명을 참조하세요.

애플리케이션이 CompareString의 ANSI 버전을 호출하는 경우 함수는 제공된 로캘의 기본 코드 페이지를 통해 매개 변수를 변환합니다. 따라서 애플리케이션은 CompareString을 사용하여 UTF-8 텍스트를 처리할 수 없습니다.

일반적으로 대/소문자를 구분하지 않는 비교의 경우 CompareString 은 로캘이 터키어 또는 아제르바이잔어인 경우에도 소문자 "i"를 대문자 "I"에 매핑합니다. NORM_LINGUISTIC_CASING 플래그는 터키어 또는 아제르바이잔어에 대해 이 동작을 재정의합니다. 이 플래그가 터키어 또는 아제르바이잔어와 함께 지정된 경우 LATIN SMALL LETTER DOTLESS I(U+0131)는 라틴어 대문자 I(U+0049)의 소문자 형식이고 LATIN SMALL LETTER I(U+0069)는 위의 LATIN CAPITAL LETTER I WITH DOT(U+0130)의 소문자 형태입니다.

Windows 8부터: 함수의 ANSI 버전은 Winnls.h에서 선언되고 유니코드 버전은 Stringapiset.h에 선언됩니다. Windows 8 이전에는 두 버전이 모두 Winnls.h에서 선언되었습니다.

참고

winnls.h 헤더는 COMPAREString을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winnls.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CompareStringEx

애플리케이션에서 정렬 처리

국가 언어 지원

국가 언어 지원 기능

보안 고려 사항: 국가별 기능

유니코드 정규화를 사용하여 문자열 표시