vector<string> SplitString(const string& input, const string& delim, bool keep_whitespace = true)
{
std::vector<std::string> result;
size_t offset = 0, index;
auto insert = [&](std::string&& s) {
if (!keep_whitespace && (s.empty() || all_of(s.cbegin(), s.cend(), [](const auto& b) { return isspace(b); })))
return;
result.emplace_back(s);
};
std::function<void()> next = [&] {
index = input.find(delim, offset);
if (index == std::string::npos)
{
insert(input.substr(offset));
return;
}
insert(input.substr(offset, index - offset));
offset = input + delim.length();
next();
};
next();
return result;
}
SplitString
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 英雄联盟作为一款多样化的游戏,其中技能的控制也分很多种,和召唤师们通常所理解的“眩晕”“禁锢”这样的硬控不同,联盟...
- 不知道大家有没有同样的感觉,出去聚餐的时候经常会选择各种自助餐,但是觉得怎么吃都吃不回本,所以小编根据这么多年吃自...