다음을 통해 공유


_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

문자열의 소문자 비교를 수행 합니다.

중요중요

_mbsicmp및 _mbsicmp_l Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수.

int _stricmp(
   const char *string1,
   const char *string2 
);
int _wcsicmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbsicmp(
   const unsigned char *string1,
   const unsigned char *string2 
);
int _stricmp_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int _wcsicmp_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbsicmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   _locale_t locale
);

매개 변수

  • string1, string2
    비교 하려면 null로 끝나는 문자열입니다.

  • locale
    사용 하는 로캘.

반환 값

반환 값의 관계를 나타내는 string1 에 string2 는 다음과 같이 합니다.

반환 값

설명

< 0

string1보다 작거나string2

0

string1동일 합니다string2

> 0

string1보다 큼string2

오류를 _mbsicmp 반환 _NLSCMPERROR, 문자열을 정의 합니다.H와 MBSTRING입니다.H.

설명

_stricmp 함수는 사전순으로 소문자 버전의 비교 string1 및 string2 와 관계를 나타내는 값을 반환 합니다._stricmp다릅니다 _stricoll 에 _stricmp 비교에서 영향을 받는 LC_CTYPE반면의 _stricoll 비교 따라는 LC_CTYPE 및 LC_COLLATE 로케일 범주.에 대 한 자세한 내용은 LC_COLLATE 범주를 참조 하십시오 setlocale로케일 범주.없이 이러한 함수 버전은 _l 접미사는 현재 로캘을 로캘 종속 동작을 사용 합니다.버전 접미사를 대신 전달 하는 로캘을 사용 하는 것을 제외 하 고 동일 합니다.자세한 내용은 로캘을 참조하십시오.

[!참고]

_stricmp는 _strcmpi와 같습니다.같은 의미로 사용 될 수 있지만 _stricmp 선호 하는 표준입니다.

_strcmpi 함수에 해당 하는 _stricmp 및 이전 버전과 호환성을 위해서만 제공 됩니다.

때문에 stricmp 비교를 소문자로 하지 예기치 않은 동작을 초래할 수 있습니다.

시기를 설명 하기 위해 사례 변환에 의해 stricmp 의 결과 영향을 비교, 존스와 JOHN_HENRY 두 문자열이 있다고 가정 합니다.존스 보다 작으면 JOHN_HENRY로 간주 되는 문자열 "_"는 소문자 S. 보다 더 낮은 ASCII 값 있기 때문에사실, 91 96 사이의 ASCII 값이 모든 문자 문자 미만 중 간주 됩니다.

경우는 strcmp 함수를 사용 하 여 대신 stricmp, JOHN_HENRY 존스 보다 큰 수 있습니다.

_wcsicmp및 _mbsicmp 와이드 및 멀티 바이트 문자 버전의 _stricmp.인수 및 반환 값을 _wcsicmp 와이드 문자 문자열입니다. _mbsicmp 멀티 바이트 문자 문자열입니다._mbsicmp현재 멀티 바이트 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 하 고 반환 _NLSCMPERROR 에 오류가 있습니다.(자세한 내용은 코드 페이지.) 이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.

_wcsicmp및 wcscmp 를 제외 하 고는 동일 하 게 동작 wcscmp 해당 인수를 비교 하기 전에 소문자로 변환 하지 않습니다._mbsicmp및 _mbscmp 를 제외 하 고는 동일 하 게 동작 _mbscmp 해당 인수를 비교 하기 전에 소문자로 변환 하지 않습니다.

호출 하면 setlocale 에 대 한 _wcsicmp Latin 1 문자 작업.C 로켈을 기본적으로 적용 되므로, 예를 들어, ä Ä 같은지 비교 합니다입니다.호출 setlocale 를 호출 하기 전에 C 로케일 이외의 다른 로케일 _wcsicmp.다음 샘플에서는 보여 줍니다 어떻게 _wcsicmp 로케일으로 중요 한 것:

// crt_stricmp_locale.c
#include <string.h>
#include <stdio.h>
#include <locale.h>

int main() {
   setlocale(LC_ALL,"C");   // in effect by default
   printf("\n%d",_wcsicmp(L"ä", L"Ä"));   // compare fails
   setlocale(LC_ALL,"");
   printf("\n%d",_wcsicmp(L"ä", L"Ä"));   // compare succeeds
}

대신 호출 하는 것 _create_locale, _wcreate_locale 반환 된 로캘 개체를 매개 변수로 전달 하 고 _wcsicmp_l.

이러한 모든 기능 매개 변수의 유효성을 검사 합니다.경우 string1 또는 string2 는 NULL 에 설명 된 대로 포인터에 잘못 된 매개 변수 처리기 호출 매개 변수 유효성 검사 .이러한 함수는 실행을 계속 하도록 허용 된 경우, 반환 _NLSCMPERROR 및 설정 errno 에 EINVAL.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tcsicmp

_stricmp

_mbsicmp

_wcsicmp

요구 사항

루틴

필수 헤더

_stricmp, _stricmp_l

<string.h>

_wcsicmp, _wcsicmp_l

<string.h> 또는 <wchar.h>

_mbsicmp, _mbsicmp_l

<mbstring.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_stricmp.c

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

int main( void )
{
   char tmp[20];
   int result;

   // Case sensitive
   printf( "Compare strings:\n   %s\n   %s\n\n", string1, string2 );
   result = strcmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof(tmp), "less than" );
   else
      strcpy_s( tmp, _countof(tmp), "equal to" );
   printf( "   strcmp:   String 1 is %s string 2\n", tmp );

   // Case insensitive (could use equivalent _stricmp)
   result = _stricmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof(tmp), "less than" );
   else
      strcpy_s( tmp, _countof(tmp), "equal to" );
   printf( "   _stricmp:  String 1 is %s string 2\n", tmp );
}
  

해당 .NET Framework 항목

System::String::Compare

참고 항목

참조

문자열 조작 (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

strcmp, wcscmp, _mbscmp

strcoll 함수

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l