C++中的split函数

C++库中是没有string 的 split函数,也没有统计一个字符串中包含多少个给定的字符串,需要自己结合find 和 substr来进行实现。

std::vector<std::string> spilt(const std::string &str, const std::string &delim)
{
    std::vector<std::string> spiltCollection;
    if(str.size()==0)
        return spiltCollection;
    int start = 0;
    int idx = str.find(delim, start);
    while( idx != std::string::npos )
    {
        spiltCollection.push_back(str.substr(start, idx-start));
        start = idx+delim.size();
        idx = str.find(delim, start);
    }
    spiltCollection.push_back(str.substr(start));
    return spiltCollection;
}

find函数返回的是查找字符在整个字符串中的第一个字符的索引。

substr函数需要的参数是start 和 长度,是一个左闭右开的关系。

猜你喜欢

转载自www.cnblogs.com/randyniu/p/9485941.html