C++ 字符串的截取

  • 按照字符串截取
/** * @brief 按照指定的字符串截取字符串 * @param str 需要截取的字符串 * @param pattern 按照该字符串截取 * @return 截取好的字符串vector */
std::vector<std::string> splitStr(std::string str, std::string pattern)
{ 
    std::string::size_type pos;
    std::vector<std::string> result;
    //扩展字符串以方便操作
    str += pattern;
    int size = str.size();
    for (int i = 0; i < size; i++)
    { 
        pos = str.find(pattern, i);
        if (pos < size)
        { 
            std::string s = str.substr(i, pos - i);
            result.push_back(s);
            i = pos + pattern.size() - 1;
        }
    }
    return result;
}
  • 按照字符截取
/** * @brief 按照指定的字符截取字符串 * @param str 需要截取的字符串 * @param pattern 按照该字符截取 * @return 截取好的字符串vector */
std::vector<std::string> splitStr(std::string str, char pattern)
{ 
    // 扩展字符串,方便后面进行操作
    str.push_back(pattern);
    
    std::vector<std::string> result;
    auto iter = str.cbegin();
    auto iter2 = iter;
    for (iter; iter != str.cend(); ++iter)
    { 
        if (*iter == pattern)
        { 
            result.push_back(string(iter2, iter));
            iter2 = iter + 1;
        }
    }
    return result;
}

    原文作者:休息一下接着来
    原文地址: https://blog.csdn.net/qq_28256407/article/details/124302331
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞