본문 바로가기
컴퓨터 공부/C++

[C++] 입력된 문자열을 거꾸로 출력해보자

by 반짱코 2023. 1. 30.
728x90

#. 전체 코드

#include <iostream>
#include <string>
using namespace std;

int main() {
	string word;						

	cout << "문장입력" << endl;

	while (true) {
		getline(cin, word, '\n');
		
		int len = word.length(); 
		int n = len / 2;        

		for (int i = 0; i < n; i++) {
			char tmp = word[i];				
			word[i] = word[len - i - 1];	
			word[len - i - 1] = tmp;		
		}
		cout << word << endl;
	}
	
}

 


 

1. 정리해보기

string word;

int len = word.length();
int n = len / 2;

변수 word는 입력받은 문자열입니다.

length()를 사용해서 입력된 문자열의 길이는 len입니다.

 

 

for (int i = 0; i < n; i++) {
	char tmp = word[i];				
	word[i] = word[len - i - 1];	
	word[len - i - 1] = tmp;		
								
}

예를 들어 문자열 abcd를 입력하면  n 은 2가 되고 2번의 반복문이 실행됩니다.

tmp => word [0]         // a

word[0] => word [3]   // a = d

word[3] => tmp        // d =a

1회 반복 결과 = dbca

 

tmp => word [1]       // b

word[1] => word [2] // b = c

word[2] => tmp      // c = b

2회 반복 결과 = dcba

 

문자열 길이에 2를 나눠서 짝수일 경우 서로 바뀌고 끝나게 되며,

입력된 문자열이 홀수일 경우 중간에 위치한 단어는 바뀌지 않아도 되기 때문에 문제없이 실행됩니다.

 

 

 

2. 결과

728x90

댓글