본문 바로가기

개발/mfc

mfc: CString 비교 - 작업중

반응형
※요약
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" ) );	  // ABC == ABC 이므로 0
	print( strText1.Compare( "abc" ) );   // ABC < abc이므로 -1
	print( strText1.Compare( "123" ) );   // ABC > 123 이므로 1

	//CompareNoCase - 대소문자 구분 안 함
	print( strText1.CompareNoCase( "ABC" ) );  // ABC == ABC 이므로 0
	print( strText1.CompareNoCase( "abc" ) );  // 대소문자를 구분하지 않음으로 0

	return 0;
}

 

 

 CString 끼리 비교

 

CString a = "ABC", b = "ABC";

 

if(a == b)

{

// 같다

}

 

- TCHAR 비교

TCHAR caDeviceIp[256];

 

if(0 == _tcscmp(caDeviceIp, "127.0.0.1"))

{

// 같다

}

 

반응형