|
간단하게 만들어 봤습니다.
보시면 알겠지만..
edit1에 입력받은걸.. 재귀호출해서 뒤집어서 edit2 에 표현합니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit2->Text = "";
Recursive(Edit1->Text,1);
}
//---------------------------------------------------------------------------
void TForm1::Recursive(String aa, int Index)
{
if (Index < aa.Length()) Recursive(aa,Index+1);
Edit2->Text = Edit2->Text + aa[Index];
}
초보자 님이 쓰신 글 :
: 안녕하세효 지난번에 abc 받은 입력받은걸 cba 로 출력하라! 라는 글로 질문드렸는데 그걸 토대로 짜봤지만
: 재귀함수가 아닌 일반적으로 쓰는 코딩방법으로밖에 생각이 나질않네요 . 답변에 도움이 될까해서
: 이렇게 글을 올립니다 Ansistring 클래스로 사용하면된다고 생각은 드는데 제가 아직 재귀에 관련해서 찾아봤지
: 만 초보인 저로써는 참고할만한 사항이없어서 답답하네요 과제도 아니고 저혼자하는건데 문자 역출력하는 재귀함수에 대해서 좀 알려주세효 우선 폼 구조형태 어떤형식으로 할려고하는 화면파일 첨부해봅니다 부탁드리겠습니다
: (정말 씨에대해선 정보가 많이 약하니 어려운 표현보다 좀더 이해하기 쉽게 설명부탁드려요 소스코딩은 직접해야하는거지만 sample로 돌릴수 있는 그냥 문자 출력방식의 재귀함수 소스라두 보여주심 감사합니다 )
:
:
:
: char sBuf[100]; // sBuf 배열 100 선언
: char sResult[100];
: int i, j; // for 문 해당 변수
: int nPos = 0;
: int count;
: strcpy(sBuf, edInput->Text.c_str()); // 문자 함수를 문자열로 바꾸는 명령어
:
:
:
: //strcpy(sResult, sBuf);
:
: for(i=0; sBuf[i]!='\0'; i++); // sBuf[i] 받은문자 배열번호 i++ 증가
:
: count+=i; //count 돌면서 +i 만큼 증가
: count = strlen(sBuf); //strlen(sBuf) sBuf 기억하여 입력받은 길이만큼 누적 저장
:
: for(i=count-1; i>=0; i--){
: sResult[nPos] = sBuf[i];
: nPos++;
: // printf("%s", sResult[i]);
: }
: sResult[nPos] = 0;
:
: //strcpy(sResult, "cba");
: lbResult->Caption = sResult;
: }
:
:
: 이거는 그냥 정리해본건데 해결은 된거같더라구요 부탁드리겠습니다
|