개발/C++
std::string tokenizing 방법
njsung
2022. 4. 19. 15:49
반응형
c++ std::string은 python의 split과 같은 tokenize 함수를 별도 제공하지 않는다.
따라서 여러가지 방법으로 string을 tokenizing할 수 있으며, 두 가지 방법을 소개하려고한다.
stringstream
std::vector<std::string> split(std::string input, char delimiter)
{
std::vector<std::string> answer;
std::stringstream ss(input);
std::string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
};
std::string line("test\test2\test3");
std::vector<std::string> tokens = split(line, '\t');
- stringstream과 getline함수를 활용 / delimiter마다 return되는 string을 vector 컨테이너에 담아 반환
boost::split
std::string line("test\test2\test3");
std::vector<std::string> tokens;
boost::split(tokens, line, boost::is_any_of("\t"));
구현해서 사용할꺼면 1번의 방식을, boost 라이브러리를 사용하고있다면 boost::split을 사용하는게 좋을 것 같다.
반응형