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;
}





문자셋 검색하는 함수 중 strspn함수와 strcspn함수에 관한 내용입니다.

단일 문자 또는 ASCII코드 값의 검색은 문자 검색 관련 함수 - strchr, strrchr을 참고하세요.


※요약

strspn : 문자열에서 일치되지 않는 첫 번째 문자의 위치를 검색합니다.(대소문자 구분)

strcspn : 문자열에서 일치되는 첫 번째 문자의 위치를 검색합니다.(대소문자 구분)


※함수 원형 및 설명


예제

-strspn, strcspn

#include <stdio.h>
#include <string.h>	//strspn, strcspn

int main( )
{
	char string[] = "a1b2c3 A1B2C3";
	char strCharset[] = "12ab";
	int nIndex=0;

	//문자열에서 '1', '2', 'a', 'b' 문자가 없는 첫 위치를 검색
	nIndex = strspn( string, strCharset );
	printf( "index : %d, %s\n", nIndex, &string[nIndex] );

	//문자열에서 'A', 'B', 'C' 중 일치되는 첫 문자가 있는 위치 검색
	nIndex = strcspn( string, "ABC" );
	printf( "index : %d, %s\n", nIndex, &string[nIndex] );

	return 0;
}


+ Recent posts