※요약

SpanIncluding : 필요한 문자들만 추출한다.

SpanExcluding : 필요없는 문자들을 걸러낸다.



※특징

SpanIncluding()는 필요한 문자들만 추출할 때 편리하며,

SpanExcluding()는 필요없는 문자들을 걸러낼 때 편리하다.



※함수 원형 및 설명

CString SpanIncluding( LPCTSTR lpszCharSet ) const;
//lpszCharSet : NULL로 종결되는 문자셋
//반환값 : 추출된 문자열을 포함하는 CString 개체.

CString SpanExcluding( LPCTSTR lpszCharSet ) const;
//lpszCharSet : NULL로 종결되는 문자셋
//반환값 : 추출된 문자열을 포함하는 CString 개체.



※예제

#include <atlstr.h>		//CString

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

int main( )
{
	CString strText = "age is 19 ~*^^*";
	CString spnstr;
	
	//소문자 a ~ z 그리고 공백 문자가 포함된 문자열까지 추출합니다.
	spnstr = strText.SpanIncluding( "abcdefghijklmnopqrstuvwxyz " );
	print( strText );
	print( spnstr );

	//"~!@#$%^&*()-=_+[]{},.<>/?;:'`" 를 포함하지 않는 문자열까지 추출합니다.
	spnstr = strText.SpanExcluding( "~!@#$%^&*()-=_+[]{},.<>/?;:'`" );
	print( strText );
	print( spnstr );

	return 0;
}




CString 문자셋 검색 함수 중 FindOneOf()에 관한 내용이다.


※요약

FindOneOf : CString 개체의 문자열에서 지정된 문자셋 중 일치하는 문자가 하나라도 있는지 검사한다.

C언어에서는 strspn, strcspn과 대응된다.



※특징

다시 한 번 강조하지만 문자열이 아닌 문자 단위로 검사하는 함수다.

예를 들어 FindOneOf( "abc" ) 라면, Find( "a" ), Find( "b" ), Find( "c" )를 차례로 수행한 것과 같다.



※함수 원형 및 설명

int FindOneOf( LPCTSTR lpszCharSet );
//lpszCharSet : 검색할 문자셋
//반환값 : 처음으로 일치되는 문자가 검색된 위치



※예제

#include <atlstr.h>		//CString

int main( )
{
	CString strTemp = "Sample 123 string";
	int nResult(0);

	nResult = strTemp.FindOneOf( "m1s2r3" );
	printf( "%d\n", nResult );	//2

	nResult = strTemp.FindOneOf( "x4c5v6" );
	printf( "%d\n", nResult );	//-1

	return 0;
}





CString 문자열 검색 관련 함수 중 Find(), ReverseFind()에 관한 내용이다.


※요약

Find : CString 개체의 문자열 기준, 좌측에서부터 문자 혹은 문자열을 검색

ReverseFind : CString 개체의 문자열 기준, 우측(역순)에서부터 문자를 검색



※특징

Find나 ReverseFind의 반환값은 0 ~ (문자열 길이 n-1)이다.

찾으려는 문자열이 없을 경우 -1을 리턴한다.



※함수 원형 및 설명

int Find( TCHAR ch ) const;
//ch : 검색할 단일 문자
//반환값 : 검색된 위치, 실패 시 -1

int Find( TCHAR ch, int nStart ) const;
//ch : 검색할 단일 문자
//nStart : 검색을 시작할 위치. 생략 시 디폴트 값 0
//반환값 : 검색된 위치, 실패 시 -1

int Find( LPCTSTR lpszSub ) const;
//lpszSub : NULL로 종결되는 검색할 문자열
//반환값 : 검색된 위치, 실패 시 -1

int Find( LPCTSTR lpszSub, int nStart ) const;
//lpszSub : NULL로 종결되는 검색할 문자열
//nStart : 검색을 시작할 위치. 생략 시 디폴트 값 0
//반환값 : 검색된 위치, 실패 시 -1

int ReverseFind( TCHAR ch ) const;
//ch : 검색할 단일 문자
//반환값 : 검색된 위치, 실패 시 -1

※예제

#include <atlstr.h>		//CString

int main( )
{
	int nIndex = 0;
	CString strDate( "2013-12-16" );

	nIndex = str.Find( '0' );
	printf( "%d\n", nIndex );

	nIndex = str.Find( '12' );
	printf( "%d\n", nIndex );

	nIndex = str.ReverseFind( '-' );
	printf( "%d\n", nIndex );

	return 0;
}






※요약

Left  : CString 개체의 문자열에서 왼쪽을 기준으로 문자열 추출

Mid : CString 개체의 문자열에서 지정한 중간 부분의 문자열 추출

Right : CString 개체의 문자열에서 오른쪽을 기준으로 문자열 추출



※함수 원형 및 설명

CString  Left( int nCount ) const;
//nCount : 왼쪽 기준 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체

CString  Right( int nCount ) const;
//nCount : 오른쪽 기준 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체

CString  Mid( int nFirst ) const;
CString  Mid( int nFirst, int nCount ) const;
//nFirst : 추출을 시작할 문자열의 위치
//nCount : 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체



※예제

#include <atlstr.h>		//CString

int main( )
{
	CString strDate( "2013-12-16" );
	
	CString strYear;
	CString strMonth;
	CString strDay;

	strYear = strDate.Left( 4 );
	strMonth = strDate.Mid( 5, 2 );
	strDay = strDate.Right( 2 );
	
	printf( "%s년 %s월 %s일", strYear, strMonth, strDay );

	return 0;
}


+ Recent posts