2016-11-29 4 views
0
#include <iostream> 
#include <string> 
#include <vector> 
#include <sstream> 

using namespace std; 


vector<string> split_string(string s) 
{ 
string buf; 
stringstream ss(s); 

vector<string> tokens; 

while (ss >> buf) 
    tokens.push_back(buf); 

return tokens; 
} 


int main() 
{ 
    cout << split_string("Alpha Beta Gamma"); 
} 

空白文字を使用して文字列をベクトルに分割しようとすると、私の解決策を印刷できません。空白文字付きベクトルに文字列を分割するC++エラー

私はそれがそのように使用する理由カント私がのstd :: coutのを使用しますが、私の機能に戻り値は

を与えている聞かせてdoesntの?どのように私はこれを修正するのですか?

+1

はのstd ::ベクトルの過負荷演算子<<はありません。 –

+0

これは[this one](http://stackoverflow.com/questions/40872311/segmentation-fault-in-program-which-creates-a-vector-from-a-string)と同じ割り当てですか? – PaulMcKenzie

答えて

2

std::coutは、ベクトルを取ることができない、あなたは、コンテナを反復処理し、各要素を個別に印刷し、このような何かを使用してみてくださいする必要があります。

int main() 
{ 
    string originalString = "Alpha Beta Gamma"; 

    for (const auto& str : split_string(originalString)) 
     cout << str << '\n'; 

    return 0; 
} 
+0

ああ、あなたはそれを指摘するために完全に正しい、大きなthxです:) – hudini

関連する問題