字符串分割

 

// 没有使用C++11特性
vector<string> testSplit(string srcStr, const string& delim)
{
    vector<string> vec;
    int pos= srcStr.find(delim.c_str());
    while(pos != std::string::npos)
    {
        string temp = srcStr.substr(0, nPos);
        vec.push_back(temp);
        srcStr = srcStr.substr(nPos+1);
        pos = srcStr.find(delim.c_str());
    }
    vec.push_back(srcStr);
    return vec;
}

————————————————
// 使用C++11特性
vector<string> testSplit11(const string& in, const string& delim)
{
    vector<string> ret;
    try
    {
        regex re{delim};
        return vector<string>{
                sregex_token_iterator(in.begin(), in.end(), re, -1),
                sregex_token_iterator()
           };      
    }
    catch(const std::exception& e)
    {
        cout<<"error:"<<e.what()<<std::endl;
    }
    return ret;
}

————————————————

 

posted @ 2020-03-13 17:07  ren_zhg1992  阅读(98)  评论(0)    收藏  举报