[MFC] CString 문자열 비교하는 함수 - Compare, CompareNoCase

MFC/문자열 함수2014. 7. 1. 01:30



※요약
Compare : 대소문자를 구분하여 문자열을 비교한다.
CompareNoCase : 대소문자를 구분하지 않고 문자열을 비교한다.

※특징
operator ==, !=, <, >, <=, >= 도 대소문자를 구분하여 CString의 문자열을 비교할 수 있으며
C언어 함수 중 strcmp, strncmp, stricmp, strnicmp 등과 비슷하다.
또 한 비교는 아스키코드를 기준으로 비교하므로 아스키코드표를 참고하면 된다.

※함수 원형 및 설명
int Compare( LPCTSTR lpsz ) const;
int CompareNoCase( LPCTSTR lpsz ) const;
//lpsz : NULL로 종결되는 비교할 문자열
//반환값 : 문자열이 lpsz보다 작을 경우 -1
//         문자열이 lpsz와 같을 경우 0
//         문자열이 lpsz보다 큰 경우 1

※예제

#include <atlstr.h>       //CString

#define print( str ) printf( "%d\n", str )

int main( )
{
	CString strText1;
	CString strText2;
	CString strText3;

	strText1 = "ABC";

	//Compare - 대소문자 구분
	print( strText1.Compare( "ABC" ) );
	print( strText1.Compare( "abc" ) );
	print( strText1.Compare( "123" ) );

	//CompareNoCase - 대소문자 구분 안 함
	print( strText1.CompareNoCase( "ABC" ) );
	print( strText1.CompareNoCase( "abc" ) );

	return 0;
}


※결과

첫 번째는 ABC == ABC 이므로 0

두 번째는 ABC < abc이므로 -1

세 번째는 ABC > 123 이므로 1

네 번째, 다섯 번째는 대소문자를 구분하지 않음으로 둘 다 0




작성자

Posted by 사용자 오뇽

태그

관련 글

댓글 영역