스트링 공백으로 split 하기

조회수 16563회

C++에서 단어들이 공백으로 나눠진 스트링이 있다고 할 때 스플릿 하기 제일 괜찮은 방법이 뭔가요? 빠른 방법 말고 보기 좋은 방법이요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    다음과 같은 방법은 어떨까요?

    #include <iostream>
    #include <sstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        string s("string to split");
        istringstream iss(s);
    
        do
        {
            string sub;
            iss >> sub;
            cout << "Substring: " << sub << endl;
    
        } while (iss);
    
    }
    

    다른 방법으로는 스탠다드 라이브러리를 이용하는 방법이 있지요

    아마 이게 좀 더 보기 좋은 코드 같네요.

    #include <iostream>
    #include <string>
    #include <sstream>
    #include <algorithm>
    #include <iterator>
    #include <vector>
    
    int main() {
        using namespace std;
        string sentence = "string to split";
        istringstream iss(sentence);
    
        //단어를 출력하려면
        copy(istream_iterator<string>(iss),
             istream_iterator<string>(),
             ostream_iterator<string>(cout, "\n"));
    
        //단어를 container에 저장하려면
        vector<string> words;
        copy(istream_iterator<string>(iss),
             istream_iterator<string>(),
             back_inserter(words));
    
        //벡터를 바로 생성하려면
        vector<string> wordsVector{istream_iterator<string>{iss},
                          istream_iterator<string>{}};
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)