[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_viewstd::string::find_first_not_of를 이용하여 사용자 정의 함수를 작성하는 방법 등이 있습니다.

토큰화에 대한 더 많은 방법과 세부 사항을 확인하려면 해당 라이브러리 또는 표준 라이브러리의 문서를 참고하시기 바랍니다.