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
참고 항목
참조
_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