最简单(只拆分空格)
std::string text ("Let :me :split: this: into words");
std::istringstream iss(text.data());
std::istream_iterator<std::string>{iss};
std::vector<std::string> results(std::istream_iterator<std::string>{iss},
std::istream_iterator<std::string>());
兼容版本
std::vector<std::string> split(const std::string& s, char delimiter)
{
std::vector<std::string> tokens;
std::string token;
std::istringstream tokenStream(s);
while (std::getline(tokenStream, token, delimiter))
{
tokens.push_back(token);
}
return tokens;
}
测试结果
for(auto bb :results)
{
cout<<bb<<endl;
}
for(auto g :split(text,' '))
{
cout<<g<<endl;
}