[C++] vector를 문자열로 변환

문자 또는 문자열 요소를 갖고 있는 vector를 하나의 string으로 변환하는 방법을 소개합니다.

1. vector<string>를 string으로 변환

아래와 같이 for문으로 vector의 모든 string을 순회하면서 문자열로 변환할 수 있습니다.

코드를 보시면 stringstream에 문자열을 추가하여 하나의 string으로 연결하고 있습니다. 또한 중간에 구분자(delimiter)를 추가할 수 있습니다.

#include <iostream>
#include <vector>
#include <sstream>
#include <iterator>

int main() {

    std::vector<std::string> vec { "Hello", "World", "Java" };

    std::stringstream ss;
    for (auto it = vec.begin(); it != vec.end(); it++)    {
        if (it != vec.begin()) {
            ss << ", ";
        }
        ss << *it;
    }

    std::string str = ss.str();
    std::cout << str << std::endl;

    return 0;
}

Output:

Hello, World, Java

2. vector<char>를 string으로 변환

vector<char>도 동일한 방법으로 문자열로 변환할 수 있습니다.

아래와 같이 for문으로 모든 요소를 순회하면서 stringstream에 추가하여 하나의 문자열로 연결할 수 있습니다. 문자 사이에 구분자(delimiter)를 추가하고 싶다면, 중간에 구분자를 추가할 수 있습니다.

#include <iostream>
#include <vector>
#include <sstream>
#include <iterator>

int main() {

    std::vector<char> vec { 'H', 'E', 'L', 'L', 'O' };

    std::stringstream ss;
    for (auto it = vec.begin(); it != vec.end(); it++)    {
        if (it != vec.begin()) {
            ss << ", ";
        }
        ss << *it;
    }

    std::string str = ss.str();
    std::cout << str << std::endl;

    return 0;
}

Output:

H, E, L, L, O

3. string 생성자로 vector<char>를 string으로 변환

vector<char>는 아래와 같이 string의 생성자에 vector의 시작과 끝의 Iterator를 전달하면, 범위에 있는 요소들을 연결하여 string을 생성합니다.

#include <iostream>
#include <vector>

int main() {

    std::vector<char> vec { 'H', 'E', 'L', 'L', 'O' };

    std::string str(vec.begin(), vec.end());
    std::cout << str << std::endl;

    return 0;
}

Output:

HELLO
Loading script...
codechachaCopyright ©2019 codechacha