2016-11-29 57 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 ::法院,但在我函數的返回值被賦予

爲什麼不能我用它這樣呢?我該如何解決?

+1

沒有超負荷運營商<<性病::向量。 –

+0

這是與[這一個]相同的任務(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

相關問題