|
강지연 님이 쓰신 글 :
: 왕초보 님이 쓰신 글 :
: : 강지연 님이 쓰신 글 :
: : : visual c++에서 Find는 일반적으로 어떤 문자열에서 자신이 찾고자 하는 문자열의 위치값을 리턴을 하는 것으로 알고 있고 그리고c-builder에서도 Pos가 이와 똑같은 역활을 하고 있는 것으로 알고 있는데
: : : 예를 들어서 visual c++에서는
: : :
: : : int count;
: : : CString aaa("");
: : : aaa="abXXcdefghijkXXlmn";
: : :
: : : count = aaa.Find("TT",4);
: : :
: : : 이런식으로 적으면 count = 13 이 리턴이 됩니다.
: : : 그런데 C-builder에서도 이와 똑같이 사용을 할려고 하는데 c-builder에서는 이와 같은 기능을 지원을 안 하는건지 에러가 처리 되는군요. 혹시 c-builder에서도 find와 같이 사용을 할려면 어떻게 해야 하는지요...
: : :
: : : 아시는분 계시면 좀 가르켜 주세요.
: : : 그럼 오늘 하루도 즐겁게...
: :
: : AnsiString aaa;
: :
: : aaa = "asdfalsjkdTTadfasd";
: :
: : count = aaa.AnsiPos( "TT" );
: :
: : 이렇게 하면 count에 "TT"로 시작하는 시점이 리턴이 될건데여... ㅡ.ㅡ;;
: : 그럼 수고하세여...
: :
: : 근데 위의 구문에서 TT라는 문자가 없는데도 리턴이 되나요..? 이상하당... 제가 visual c++을 잘몰라서리.. ^^;
:
:
:
: 아고 제가 XX를 TT로 잘못 적었네요...
: 근데 제가 물어 볼려고 하는것은 그게 아니고요.
:
: AnsiString aaa;
:
: aaa = "asTTdfalsjkdTTadfasd";
:
: count = aaa.AnsiPos( "TT" );
:
: 이렇게 되면 처음에 있는 TT만 찾아지게 되는거잖아요.
: Pos("TT",4);
: 이렇게 하면 4번째 문자 뒤부터 검색을 하는것을 말하는거거든요.
: 그러니까 처음에 있는 TT를 찾는것이 아니라 조건에서 숫자를 주어서 그 숫자만큼 뒤부터 찾는것을 말하는거거든요....
:
: 그리고 질문이 또 한가지가 있는데
: Pos의 기준점은 항상 첫번째부터 시작하는걸로 알고 있는데 이게 첫번째부터가 아닌
: 뒤에서부터 검색이 되게 하는방법은 없는지요.
: 그러니까 VC에서는 ReverseFind라는 것이 있어서 Find 와는 달리 뒤에서부터 앞으로 찾아오는 거거든요.
:
: 그래도 일단은 감사 드립니다.
vc의 CString이 역시 잡스런 함수가 많군요
그런 함수는 대강 만들어 씁시다
먼저 몇번째 후부터 찾기
int PosAfterCount(AnsiString strSource, AnsiString strFind, int nCount)
{
strSource = strSource.SubString(nCount+1, strSource.Length()-nCount);
return(strSource.Pos(strFind));
}
문자열 뒤집기
void _reverse(AnsiString& str_src)
{
AnsiString str_tmp;
char* char_src = str_src.c_str();
int len = str_src.Length();
len--;
for(int i= len; i>=0; i--)
{
str_tmp = str_tmp + char_src[i];
}
str_src = str_tmp;
}
뒤집은 담에 Pos쓰면 값이 나오겠죠?
|