|
아직 C++ Builder에 적응이 안되어서
그런 함수가 있었는지 몰랐네요...^^;
장성호님 답변 감사합니다...^^
장성호 님이 쓰신 글 :
: 배열의 index는 1부터가 맞습니다.
:
: 그리고 코드에도 별 문제가 없는듯 하네요
:
: 그런데...
:
: AnsiString에는 LastDelimiter 라는 함수가 있습니다.
:
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: String strSource = "1234567890123456789012345";
: String strToken = "123";
: ShowMessage(strSource.LastDelimiter(strToken));
: }
:
: 그럼..
:
: 초보 님이 쓰신 글 :
: : 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;
: : }
: : //=============================================================================
|