|
배열의 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;
: }
: //=============================================================================
|