[c++] 문자열에서 공백을 기준으로 토큰화하는 방법
먼저, 토큰화할 문자열과 토큰을 저장할 컨테이너를 정의해야 합니다. 이 후에 문자열을 공백을 기준으로 분리하고, 분리된 토큰을 컨테이너에 저장하면 됩니다.
아래는 C++에서 문자열을 공백을 기준으로 토큰화하는 예제 코드입니다:
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
int main() {
std::string input = "This is a sample sentence";
std::istringstream iss(input);
std::vector<std::string> tokens{std::istream_iterator<std::string>{iss},
std::istream_iterator<std::string>{}};
for (const auto& token : tokens) {
std::cout << token << std::endl;
}
return 0;
}
위의 코드는 <sstream>
헤더의 std::istringstream
클래스를 사용하여 문자열을 공백을 기준으로 분리한 후, std::vector
에 저장하는 방법을 보여줍니다.
이 코드를 실행하면 “This”, “is”, “a”, “sample”, “sentence” 다섯 개의 토큰이 출력됩니다.
다른 방법으로는 Boost 라이브러리의 boost::algorithm::split
함수를 사용하거나, C++17 이상에서는 std::string_view
와 std::string::find_first_not_of
를 이용하여 사용자 정의 함수를 작성하는 방법 등이 있습니다.
토큰화에 대한 더 많은 방법과 세부 사항을 확인하려면 해당 라이브러리 또는 표준 라이브러리의 문서를 참고하시기 바랍니다.