Nagie's DevStory
[ALGORITHM] 13. 문자열 뒤집기 본문
728x90
C++에서 문자열을 뒤집는 방법은 여러 가지가 있다.
그중에서 간단하게 해결할 방법부터 설명하자면 다음과 같이 <algorithm> 헤더에 있는 reverse()를 사용하는 방법이 있다.
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str = "Hello";
// 문자열 뒤집기
std::reverse(str.begin(), str.end());
// 뒤집힌 문자열 출력
std::cout << str << std::endl;
}
또한 아래의 코드처럼 반복문을 사용해서 문자열을 뒤집는 방법도 있으며
#include <iostream>
#include <string>
int main() {
std::string str = "Hello";
int start = 0;
int end = str.length() - 1;
while (start < end) {
// 문자열의 시작과 끝을 서로 교환
std::swap(str[start], str[end]);
// 시작 인덱스 증가, 끝 인덱스 감소
start++;
end--;
}
// 뒤집힌 문자열 출력
std::cout << str << std::endl;
}
문자열의 길이가 길면 성능상 문제가 생기긴 하지만 다음과 같이 재귀함수를 사용해 문자열을 뒤집는 방법도 있다.
std::string reverse(const std::string& str) {
return (str.length() == 0) ? "" : reverse(str.substr(1)) + str[0];
}
728x90
Comments