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
'컴퓨터 공부 > C++' 카테고리의 다른 글
[C++] 영어문장을 모스부호로 바꿔보자 (0) | 2024.05.04 |
---|---|
[C++] 함수를 중복으로 사용하기 (0) | 2023.06.21 |
[C++] compare을 이용해서 단어 순서를 비교해보자 (0) | 2023.01.28 |
[C++]텍스트를 입력받아 알파벳 히스토그램 그리기 (0) | 2021.08.29 |
[C++] 두 숫자를 입력하고 그 중 큰 수를 구하기 (0) | 2021.08.25 |
댓글