소개
이 랩에서는 재귀 (recursion) 를 사용하여 입력 문장을 뒤집는 C++ 프로그램을 단계별로 작성하는 방법을 배웁니다. 이 프로그램은 사용자로부터 입력 문장을 받아 뒤집힌 문장을 출력합니다.
이 랩에서는 재귀 (recursion) 를 사용하여 입력 문장을 뒤집는 C++ 프로그램을 단계별로 작성하는 방법을 배웁니다. 이 프로그램은 사용자로부터 입력 문장을 받아 뒤집힌 문장을 출력합니다.
C++ 에서 cin, cout과 같은 표준 입출력 스트림 객체를 사용하려면 iostream 라이브러리를 포함해야 합니다. 따라서 main.cpp 파일의 시작 부분에 다음 코드 블록을 추가합니다.
#include <iostream>
using namespace std
이 프로그램에서는 문자열을 재귀적으로 뒤집는 함수가 필요합니다. using namespace std; 문 다음에 다음 코드 블록을 추가합니다.
void reverse(const string& a);
알다시피, main 함수는 프로그램의 진입점입니다. main 함수에서 사용자에게 문장을 입력하도록 요청하고 해당 문장을 reverse 함수에 전달합니다.
int main() {
string str;
cout << "Please enter a sentence: ";
getline(cin, str);
reverse(str);
return 0;
}
여기서는 사용자에게 문장을 입력하도록 요청한 다음, reverse 함수를 호출하고 입력된 문장을 인수로 전달합니다.
이제 앞서 선언한 reverse 함수를 정의해야 합니다. 입력된 문장을 뒤집기 위해 재귀 (recursion) 를 사용합니다. 다음은 함수의 구현입니다.
void reverse(const string& str) {
size_t numOfChars = str.size();
if(numOfChars == 1) {
cout << str << endl;
}
else {
cout << str[numOfChars - 1];
reverse(str.substr(0, numOfChars - 1));
}
}
이 함수에서는 먼저 str.size()를 사용하여 입력 문자열의 크기를 계산합니다. 문자열의 크기가 1 이면 기본 사례 (base case) 이므로 입력 문장의 마지막 글자를 출력합니다. 그렇지 않으면 마지막 문자를 출력한 다음, 마지막 글자를 제외한 문자열로 reverse 함수를 재귀적으로 호출합니다.
프로그램 작성을 완료했습니다. 이제 컴파일하고 실행해야 합니다. ~/project 디렉토리에서 터미널을 열고 다음 명령을 사용하여 코드를 컴파일합니다.
g++ main.cpp -o main
이 명령은 main이라는 실행 파일을 생성합니다. 이제 다음 명령을 사용하여 프로그램을 실행합니다.
./main
프로그램을 성공적으로 실행하면 다음과 같은 출력을 볼 수 있습니다.
Please enter a sentence: Study tonight
thgnot ydutS
이 랩에서는 재귀 (recursion) 를 사용하여 문장을 뒤집는 C++ 프로그램을 작성하는 방법을 배웠습니다. 입력된 문장을 뒤집기 위해 재귀를 사용하는 reverse 함수를 구현했으며, 입력 문자를 인수로 사용하여 main 함수에서 해당 함수를 호출했습니다. 마지막으로, 터미널에서 프로그램을 컴파일하고 실행하여 출력을 확인했습니다.