문장 뒤집기

C++Beginner
지금 연습하기

소개

이 랩에서는 재귀 (recursion) 를 사용하여 입력 문장을 뒤집는 C++ 프로그램을 단계별로 작성하는 방법을 배웁니다. 이 프로그램은 사용자로부터 입력 문장을 받아 뒤집힌 문장을 출력합니다.

필요한 라이브러리 포함

C++ 에서 cin, cout과 같은 표준 입출력 스트림 객체를 사용하려면 iostream 라이브러리를 포함해야 합니다. 따라서 main.cpp 파일의 시작 부분에 다음 코드 블록을 추가합니다.

#include <iostream>
using namespace std

Reverse 함수 선언

이 프로그램에서는 문자열을 재귀적으로 뒤집는 함수가 필요합니다. using namespace std; 문 다음에 다음 코드 블록을 추가합니다.

void reverse(const string& a);

main 함수 정의

알다시피, main 함수는 프로그램의 진입점입니다. main 함수에서 사용자에게 문장을 입력하도록 요청하고 해당 문장을 reverse 함수에 전달합니다.

int main() {
  string str;

  cout << "Please enter a sentence: ";
  getline(cin, str);

  reverse(str);

  return 0;
}

여기서는 사용자에게 문장을 입력하도록 요청한 다음, reverse 함수를 호출하고 입력된 문장을 인수로 전달합니다.

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 함수에서 해당 함수를 호출했습니다. 마지막으로, 터미널에서 프로그램을 컴파일하고 실행하여 출력을 확인했습니다.