[C++] 문자열 거꾸로 뒤집기

string의 문자열을 거꾸로 뒤집어 저장하는 방법을 소개합니다.

1. for문과 swap()으로 문자열 뒤집기

반복문과 swap()으로 아래와 같이 문자열을 뒤집을 수 있습니다. swap(a, b)는 a와 b의 문자를 바꿉니다.

#include <iostream>
#include <string>
#include <algorithm>

void reverse(std::string &str) {
    int n = str.length();
    for (int i = 0; i < n/2; i++) {
        std::swap(str[i], str[n-i-1]);
    }
}

int main() {
    std::string str("Hello world, C++");

    reverse(str);
    std::cout << str;

    return 0;
}

Output:

++C ,dlrow olleH

2. reverse() 함수로 문자열 뒤집기

std::reverse(first, last)는 인자로 전달된 범위의 문자열들의 순서를 거꾸로 뒤집습니다.

아래와 같이 문자열의 순서를 반대로 변경하여 저장할 수 있습니다.

#include <iostream>
#include <string>
#include <algorithm>

int main() {
    std::string str("Hello world, C++");

    std::reverse(str.begin(), str.end());
    std::cout << str;

    return 0;
}

Output:

++C ,dlrow olleH
Loading script...
codechachaCopyright ©2019 codechacha