다음을 통해 공유


strcmp, wcscmp, _mbscmp

문자열을 비교 합니다.

중요중요

_mbscmp실행 하는 응용 프로그램에서 사용할 수 있는 Windows 런타임.자세한 내용은 /zw에 지원 되는 CRT 함수.

int strcmp(
   const char *string1,
   const char *string2 
);
int wcscmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbscmp(
   const unsigned char *string1,
   const unsigned char *string2 
);

매개 변수

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

반환 값

Lexicographic 관계의 각이 함수에 대 한 반환 값을 나타내는 string1 에 string2.

문자열 1 문자열 2 수의 관계

< 0

string1것 보다 작은string2

0

string1동일 합니다.string2

> 0

string1이 string2보다 큽니다.

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

설명

strcmp 비교 함수 string1 및 string2 사전순으로 서로의 관계를 나타내는 값을 반환 합니다.wcscmp및 _mbscmp 각각의 와이드 문자 및 멀티 바이트 문자 버전입니다 strcmp._mbscmp현재 멀티 바이트 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 하 고 반환 _NLSCMPERROR 에 오류가 있습니다.자세한 내용은 코드 페이지을 참조하십시오.또한 경우 string1 또는 string2 는 null 포인터 _mbscmp 에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 합니다. 매개 변수 유효성 검사.실행을 계속 하려면 허용 되는 경우 _mbscmp 반환 _NLSCMPERROR 을 설정 하 고 errno 에 EINVAL.strcmp및 wcscmp 매개 변수의 유효성을 검사 하지 않습니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

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

_Mbcs가 정의

_Unicode가 정의

_tcscmp

strcmp

_mbscmp

wcscmp

strcmp 함수 다에서 strcoll 함수는 strcmp 비교 로케일에 적용 된 반면 같은 방식으로 strcoll 비교에 의해 결정 됩니다의 LC_COLLATE 현재 로케일 범주.에 대 한 자세한 내용은 LC_COLLATE 범주를 참조 하십시오 setlocale을 _wsetlocale.

"C" 로케일의 문자 (ASCII 문자 집합) 문자 집합에서의 순서 lexicographic 문자 순서와 동일합니다.그러나 다른 로캘에서 문자 집합에 문자의 순서가 lexicographic 순서에서 달라질 수 있습니다.예를 들어, 특정 유럽 로케일에서 문자 'a' (값 0x61) 'ä' (0xE4)의 값은 문자 설정 되지만 문자 문자 앞에 문자 'ä' 앞 'a' 사전순으로.

로캘에 대 한 문자 집합 및 lexicographic 문자 순서가 다를 수 strcoll 대신 strcmp lexicographic 따라 문자열 비교에 대 한의 LC_COLLATE 현재 로케일의 범주 설정입니다.위의 예제에서 로캘의 lexicographic 비교를 수행 하려면 사용 strcoll 대신 strcmp.또는 사용할 수 있습니다 strxfrm 다음 원래 문자열을 사용 하 여 strcmp 에서 생성 된 문자열.

_stricmp_wcsicmp, 및 _mbsicmp 첫 번째을 양식에 소문자로 변환 하 여 문자열을 비교 합니다.'Z' 사이 있는 문자를 포함 하는 두 개의 문자열 및 'a' ASCII 테이블에서 ('[','\', '] ','^','_', 및 '`')의 대/소문자에 따라 다르게 비교 합니다.예를 들어 두 문자열 "ABCDE" 및 "ABCD^" 비교 소문자 인 경우 한 가지 방법은 비교 ("abcde" > "abcd^")는 다른 방식 ("ABCDE" < "ABCD^") 비교 대문자 인 경우.

요구 사항

루틴

필수 헤더

strcmp

<string.h>

wcscmp

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

_mbscmp

<mbstring.h>

추가 호환성 정보를 참조 하십시오. 호환성.

라이브러리

모든 버전의 C 런타임 라이브러리.

예제

// crt_strcmp.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::CompareOrdinal

참고 항목

참조

문자열 조작 (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

strcoll 함수

_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l