스트링 공백으로 split 하기


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

  • 2016년 01월 05일에 작성됨

조회수 437


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>{}};
}
  • 2016년 01월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close