在C#中分割字符串有现成的函数Split可供调用,但是标准C++好像却没有现成的,还好根据STL地强大功能,可以很方便地自己实现出来,下面就是我写的分割函数:

std::vector<std::string> splitString(std::string srcStr, std::string delimStr,bool repeatedCharIgnored)
{std::vector<std::string> resultStringVector;std::replace_if(srcStr.begin(), srcStr.end(), [&](const char& c){if(delimStr.find(c)!=std::string::npos){return true;}else{return false;}}/*pred*/, delimStr.at(0));//将出现的所有分隔符都替换成为一个相同的字符(分隔符字符串的第一个)size_t pos=srcStr.find(delimStr.at(0));std::string addedString="";while (pos!=std::string::npos) {addedString=srcStr.substr(0,pos);if (!addedString.empty()||!repeatedCharIgnored) {resultStringVector.push_back(addedString);}srcStr.erase(srcStr.begin(), srcStr.begin()+pos+1);pos=srcStr.find(delimStr.at(0));}addedString=srcStr;if (!addedString.empty()||!repeatedCharIgnored) {resultStringVector.push_back(addedString);}return resultStringVector;
}

其中,srcStr是待分割地字符串,delimStr是分隔符组成的字符串,可以有多个分隔符,最后的repeatedCharIgnored是指是否忽视待分割字符串中的重复分隔符,也就是说如果忽视,那么多个连续分隔符将被视为一个分隔符,这样最后得到的分割结果中是不会出现空字符串的,否则,分割结果中会出现空字符串。

splitString("what tatoo"," t",true)的返回结果为{"wha","a","oo"}

而splitString("what tatoo"," t",false)的返回结果为{"wha","","","a","oo"}

此算法受某位同学启发,特此感谢。

标准std::string分割字符串split相关推荐

  1. java分割字符串 行,string分割字符串 如何按行来分割Java字符串

    Java的split()是怎么拆分字符串的? java拆分字符串使用string类的spilt方法,针对某个分隔符来分割一个字符串,示例如下: public class StringSplit { p ...

  2. 分割字符串split函数的正确用法(切片)

    分割字符串split函数的正确用法(切片) split函数是将字符串分割为列表 函数原型: str.split(sep,maxsplit) 参数说明: str:表示要进行分割的字符串 sep:用于指定 ...

  3. c++分割字符串split方法实现

    c++标准库中没有实现split函数,但是split字符串又是特别特别常见的常规操作.网络上能找到很多split的实现方式,下面记录一下本人认为比较优雅,可读性也比较好的两种实现方式. 1.使用fin ...

  4. CString、std::string格式化字符串

    2019独角兽企业重金招聘Python工程师标准>>> =============================CString=========================== ...

  5. mysql split 按 分割_mysql分割字符串split

    在mysql数据库中实现split函数: 代码1: 代码示例: DELIMITER $$ CREATE DEFINER=`root`@`%` FUNCTION `func_get_split_stri ...

  6. C#通过字符串分割字符串Split

    1 string[] strArr = str.Split(new[] {"****==="},StringSplitOptions.None); 转载于:https://www. ...

  7. c++ string分割字符串split_python 字符串和文本处理

    字符串和文本处理 字符串是一种重要的数据形式,有价值的程序都会涉及到对于字符串的处理.幸运的是,强大的python内置了很多函数,来帮助我们解析和处理字符串.本文会涉及到字符串编码,简单的字符串处理函 ...

  8. c++ string分割字符串split_Java字符串到数组的转换最后放大招

    本文是关于如何在Java中以不同方式将String转换为String Array的几种方法,按照惯例,文末会分享Groovy语言中的实现. split()方法 字符串api是通过split()方法添加 ...

  9. python 字符串分割_python中分割字符串split切割并选择输出 逐行读取文件后字符串拼接...

    字符串根据分隔符切割后输出,一下面 #!/usr/bin/python # -*- coding: utf-8 -*- str="abc,123 efg,567" #以空行分割后输 ...

最新文章

  1. 新员工安全生产知识学习读本
  2. html5 clip,canvas中使用clip()函数裁剪方法
  3. 新俊飞六合一口红机完整源码
  4. 计算机病毒怎么做图片解说,【虎子_游戏解说】计算机病毒防范的实施方法
  5. vue3 element el-tree 默认选中某个节点高亮
  6. 单片机 c语言 pwm输出,单片机中PWM程序工作原理图文详解
  7. SecureCRT的安装、介绍、简单操作
  8. step7V5.5中文版
  9. 解除当前设置不允许下载该文件
  10. 决策树及输出结果解释
  11. AE怎么制作流体文字效果?这波教程我真学会了
  12. 排列组合算法(全排列、全组合)
  13. (亲测可用)修改VisualSVN Server地址为ip地址,修改svn服务端地址为ip或者域名地址的方法
  14. 面试通过后如何拒绝HR拿offer
  15. Socket基本操作的C++封装--以及Socket通信实践
  16. 下载mysql源码包
  17. 用java实现网络爬虫,实时获取中国地震台网数据
  18. 优化Hexo性能,使用hexo-neat插件压缩页面,大幅度提升页面性能和响应速度
  19. 互联网之父Vint Cerf:互联网的下一个十年
  20. 华南师范大学计算机学硕考研,【20计算机考研】二战师兄经验贴,让你少走弯路!...

热门文章

  1. Fortify SCA快速入门以及常见问题解决方法
  2. Sklearn官方文档中文整理6——交叉分解,朴素贝叶斯和决策树篇
  3. 【漏洞发现-sql注入】有回显注入--sqli-labs
  4. LaTex的表格、图片、参考文献的基本操作
  5. java+mysql crm客户关系区块链毕业管理系统设计与论文
  6. leetcode 三个数相加得零 快速夹逼法
  7. 计算机数据恢复视频教程,手机视频误删怎么恢复 互盾数据恢复教程
  8. 普朗特迈耶稀疏波_埃里克·迈耶的访谈
  9. php处理并发不如java_今天听人说 php 运算能力不比 java
  10. RabbitMQ-客户端源码之AMQChannel