字符串分割函数

 

//按字符分割,可以为多个分割符同时分割,例如 split(str, "\",[]{})
vector<string> split(string str, string pattern){
    vector<string> ret;
    if (pattern.empty()) return ret;
    size_t start = 0, index = str.find_first_of(pattern, 0);
    while (index != str.npos){
        if (start != index)
            ret.push_back(str.substr(start, index - start));
        start = index + 1;
        index = str.find_first_of(pattern, start);
    }
    if (!str.substr(start).empty())
        ret.push_back(str.substr(start));
    return ret;
}

 

//按子串分割,将pattern作为一个整体
vector<string> split2(string str, string pattern){
    vector<string> ret;
    if (pattern.empty()) return ret;
    size_t start = 0, index = str.find(pattern, 0);
    while (index != str.npos){
        if (start != index)
            ret.push_back(str.substr(start, index - start));
        start = index + pattern.size();
        index = str.find(pattern, start);
    }
    if (!str.substr(start).empty())
        ret.push_back(str.substr(start));
    return ret;
}

 

posted @ 2017-06-04 13:11  BlueOceans  阅读(590)  评论(0编辑  收藏  举报