SplitString

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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容