vector<string> Util::split(string str, char delimiter){
vector<string> internal;
stringstream ss(str); // Turn the string into a stream.
string tok;
while(getline(ss, tok, delimiter)) {
internal.push_back(tok);
}
return internal;
}
string str =“k 1 1”;
getline(ss,tok,'')
如果我尝试检查返回向量的大小,则为大小为一。
string str =“k,1,1”;
getline(ss,tok,',')
但是,如果我将分隔符更改为逗号并修改字符串变量tok。
那么大小将是三个
所以白色空间存在问题
我能做些什么来完成这项工作?我几乎整天都在这里。
int main(){
Util src;
int runProgram = 1;
string input;
while(runProgram!=0){
cout << "Input your command to perfrom operation: " << endl;
cin >> input; // user inputs "k 1 1"
vector<string>sep=src.split(input, ' ');
cout << sep.size() << endl; // size is one when it should be 3
}
}
答案 0 :(得分:0)
#include <iostream>
using namespace std;
int delimiter(string & str,char ch){
unsigned int count=1,size=str.size();
if(size==0){
return 0;
}
for(unsigned int i=0;i<size;i++){
if(str[i]==ch){
count++;
}
}
return count;
}
int main (int argc,char* array[]){
string s="1 1 k";
cout<<delimiter(s,' ') << endl;
}