根据空格分隔符进行C++字符串切分的代码如下(如果分隔符不是空格,改为其他的分隔符即可):
vector<string> splitString(const string& s)
{
vector<string> ans;
int len = s.length();
if (len == 0) return ans;
for (int i = 0; i < len;){
int pos = s.find(' ', i);
if (pos != string::npos){
if (pos == i){//跳过多个连续的空格
i = pos + 1;
continue;
}
else{
string strTemp = s.substr(i, pos - i);
ans.push_back(strTemp);
i = pos + 1;
}
}
else{
string strTemp = s.substr(i, len - i);
ans.push_back(strTemp);
break;
}
}
return ans;
}
int main()
{
string s = "the sky is blue";
vector<string> ans = splitString(s);
for (int i = 0; i < ans.size(); ++i){
cout << ans[i] << endl;
}
return 0;
}
输出结果:
the
sky
is
blue