我試圖從用戶處取得一個字符串輸入,將其拆分爲每個空格處的單個字符串並將其存儲在向量中。我使用this後的第一個代碼片段(這是問題的第二個回答)對字符串進行拆分。這些是我在編譯時遇到的錯誤:將字符串拆分爲字符串向量時出現無效的轉換錯誤
stringTest.cpp:函數'int main()': stringTest.cpp:23:30:錯誤:從'const char *'無效轉換爲'char'[ -fpermissive] split(input,「」,splitInput); ^
stringTest.cpp:8:17:錯誤:初始化的參數2 '的std ::矢量> &分裂(的std :: string &,炭,性病::矢量> &)'[-fpermissive] 矢量&分裂(字符串& S,焦炭DELIM,矢量& elems的){
我意識到發生了什麼的第一個錯誤的說法,但無法弄清是怎麼引起的問題,我不知道第二個錯誤方式。
這是我寫的代碼(所有的主從鏈接後拍攝外):因爲
#include <string>
#include <sstream>
#include <vector>
#include <iostream>
using namespace std;
vector<string> &split(string &s, char delim, vector<string> &elems) {
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
int main(){
string input;
cin>>input;
vector<string> splitInput;
split(input, " ", splitInput);
for(int i = 0; i < splitInput.size(); i++){
cout<< splitInput.at(i) << endl;
}
return 0;
}
讓它'分裂(輸入, '',splitInput);'。請注意單引號代替雙引號。閱讀您最喜愛的C++教科書中的字符文字和字符串文字。 –