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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 英雄联盟作为一款多样化的游戏,其中技能的控制也分很多种,和召唤师们通常所理解的“眩晕”“禁锢”这样的硬控不同,联盟...
- 不知道大家有没有同样的感觉,出去聚餐的时候经常会选择各种自助餐,但是觉得怎么吃都吃不回本,所以小编根据这么多年吃自...