这篇文章将为大家详细讲解有关c++中如何实现字符串分割,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
10多年专注成都网站制作,成都企业网站建设,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都企业网站建设,高端网页制作,对资质代办等多个行业,拥有丰富的网站维护经验。C++ 中经常需要对字符串按照分隔符进行分割以获得子串序列,子串的顺序与其在原字符串中出现的顺序一致。一般有两种需求场景:
(1)给定一个分隔符(单个字符或子串)分割字符串;
(2)给定一个或多个分隔符(单个字符),分割字符串。
当给定的分隔符不在原字符串中,则原字符串不被分割,返回单个元素为原字符串的 vector。
注意,本文实现时,如果被分割后的子串为空串,则不计入最终的子串序列。比如原字符串是"a,b",分隔符为",",那么分割后的子串序列为 [“a”, “b”],而不是 [“a”, “”, “b”]。
1.单个分隔符(单个字符或子串)分割字符串
#include <iostream> #include <vector> #include <string> using namespace std; //@brief: 指定单个分隔符(单个字符或子串)分割字符串 //@param: src 原字符串;delimiter 分隔符,单个字符或子串 vector<string> splitStr(const string& src, const string& delimiter) { std::vector<string> vetStr; // 入参检查 // 1.原字符串为空或等于分隔符,返回空 vector if (src == "" || src == delimiter) { return vetStr; } // 2.分隔符为空返回单个元素为原字符串的 vector if (delimiter == "") { vetStr.push_back(src); return vetStr; } string::size_type startPos = 0; auto index = src.find(delimiter); while (index != string::npos) { auto str = src.substr(startPos, index - startPos); if (str != "") { vetStr.push_back(str); } startPos = index + delimiter.length(); index = src.find(delimiter, startPos); } // 取最后一个子串 auto str = src.substr(startPos); if (str != "") { vetStr.push_back(str); } return vetStr; }
当前标题:c++中如何实现字符串分割-创新互联
浏览路径:https://www.cdcxhl.com/article40/dgjseo.html
成都网站建设公司_创新互联,为您提供建站公司、静态网站、网站设计公司、App开发、ChatGPT、网页设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联