C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[52179] ReverseFind
초보 [] 1390 읽음    2008-02-04 14:24
VC++의 ReverseFind  기능을 구현해 봤습니다.
C++ Builder는 만지기 시작한지 며칠 안되어서 아래 코드가 컴파일은 되지만
AnsiString, WideString에 따라서 어떻게 작동할 지는 잘 모르겠네요.
혹시 아래 코드가 문제가 없는지 알려주셨으면 합니다.
그리고 C++ builder에서는 배열의 index가 1부터 시작하나요?
테스트를 하다보면 인덱스 땜에 에러가 나곤 하던데, 어찌 된 일인지?
아래 코드도 인덱스가 1부터 시작한다고 가정하고 만들었습니다.

long TForm::ReverseFind( String strSource, String strToken )
{
    for( long i = strSource.Length() - strToken.Length() + 1; i >= 1; i-- )
    {
        if( strSource.SubString( i, strToken.Length() ) == strToken )
        {
            return i;
        }
    }

    return -1;
}

사용예)
//=============================================================================
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    String strSource = "1234567890123456789012345";
    String strToken = "123";

    ShowMessage( ReverseFind( strSource, strToken ) );
}

long TForm1::ReverseFind( String strSource, String strToken )
{
    for( long i = strSource.Length() - strToken.Length() + 1; i >= 1; i-- )
    {
        if( strSource.SubString( i, strToken.Length() ) == strToken )
        {
            return i;
        }
    }

    return -1;
}
//=============================================================================

+ -

관련 글 리스트
52179 ReverseFind 초보 1390 2008/02/04
52180     Re:ReverseFind 장성호 1637 2008/02/04
52181         Re:Re:ReverseFind 초보 1479 2008/02/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.