#include <iostream>
#include <string>
#include <vector> using namespace std; vector<string> mySplit(const string& str,string sp_string)  // split(),str 是要分割的string
{ vector<string> vecString; int sp_stringLen = sp_string.size(); int lastPosition = 0; int index = -1; while(-1 != (index=str.find(sp_string,lastPosition))) { vecString.push_back(str.substr(lastPosition,index - lastPosition)); lastPosition = index +sp_stringLen; } string lastStr = str.substr(lastPosition); if ( !lastStr.empty() ) { vecString.push_back(lastStr); } return vecString;
} string myReplaceAll(const string& str,string org_str,string rep_str) // 把org_str 替换为rep_str;
{ vector<string>  delimVec = mySplit(str,org_str); if (delimVec.size() <= 0) { cout<<"can not find"<<endl; return str; } string target(""); vector<string>::iterator it = delimVec.begin(); for (; it != delimVec.end(); ++it) { target = target + (*it)+ rep_str; }
//target = target +(*it); return target; } // 把org_strVec中的string全部替换为rep_str;
string myReplaceAll(const string& str,vector<string>& org_strVec,string rep_str)
{ vector<string>::iterator org_it = org_strVec.begin(); string org_str(""); string target = str; string strTarget = str; for (; org_it != org_strVec.end(); ++org_it) { org_str = *org_it; vector<string> delimVec = mySplit(strTarget,org_str); target = ""; if (delimVec.size() > 0) { vector<string>::iterator it = delimVec.begin(); for (;it != delimVec.end(); ++it) { target = target + (*it) +rep_str; } strTarget = target; } } return strTarget;
} int main(int argc,char* argv[])
{ string str = "ewrsdrtwrtsdfsdsdfrtfgsdfertgdffgertsdfsd"; string splitStr = "sd"; string replaceStr1 = "mmmm"; string replaceStr2 = "xxxx"; vector<string> strVec1 = mySplit(str,splitStr); for (vector<string>::iterator it = strVec1.begin(); it != strVec1.end(); ++it) { cout<< "!!!  "<<*it<<endl; } string strX[] = {"wr","rt"}; vector<string> strVec2 (strX,strX + sizeof(strX)/sizeof(strX[0])); cout << strVec2[0]<<"13q3224"<<strVec2[1]<<endl; str = myReplaceAll(str,splitStr,replaceStr1); str = myReplaceAll(str,strVec2,replaceStr2); cout << str <<"~~~~~"<<endl; return 0;
}

编译:
g++ -std=c++11 -o test test.cpp
运行:

!!!  ewr
!!!  rtwrt
!!!  f
!!!
!!!  frtfg
!!!  fertgdffgert
!!!  f
wr13q3224rt
exxxxmmmmxxxxxxxxtmmmmfmmmmmmmmfxxxxfgmmmmfexxxxgdffgexxxxmmmmfmmmmxxxxxxxx~~~~~

C++字符串分割替换 ubuntu版本相关推荐

  1. Go 学习笔记(51)— Go 标准库之 strings(字符串比较、字符串前后缀、字符串统计、字符串索引、字符串包含、字符串转换、字符串复制、字符串替换、字符串去除、字符串分割和连接)

    1. 概述说明 import "strings" strings 包实现了用于操作字符的简单函数. strings 包与 bytes 包中的函数用法基本一样. 2. 主要函数 2. ...

  2. 字符串分割、切片、替换、去除头尾指定字符

    1.字符串分割 str1 = "1234567580" print(str1.split('5', 2)) # 以"5"为分隔符,分割两次 # 结果:['123 ...

  3. 常见操作String的方法(截取子串,分割字符串,字符串的替换)

    常见操作String的方法(截取子串,分割字符串,字符串的替换) 截取子字符串substring() substring()方法有两种重载形式,一种是从指定位置截取到字符串结尾,另一种是截取指定范围的 ...

  4. Java对于字符串的处理【String和int之间的转换、字符串拼接、字符串获取长度、字符串大小写转换、字符串去空格、字符串分割、字符串替换、字符串提取、字符串比较、字符串查找】

    文章目录 String字符串 和 整型int 的相互转换 String转化为int int 转换为 String 字符串拼接 使用连接运算符 "+" 使用 concat() 方法 ...

  5. javascript-字符串函数-指定位置字符-位置查找-字符串替换-字符串分割

    文章目录 1.指定位置字符 2.位置查找 3.截取子字符串 3.1.substring函数 3.2.slice函数 3.3.substr函数 3.4.分割总结 4.字符串替换 5.字符串分割 5.1. ...

  6. JAVA 操作字符串 分割、替换、截取操作

    1.按指定字符分割 1.1 String belongPlace = "北京市,天津市,石家庄市";String[] placeName = belongPlace.split(& ...

  7. C++实现字符串分割函数split()

    目录 使用strtok()完成分割 使用strsep()完成分割 使用strtok_r()完成分割 实现字符串分割 前言 最近遇到了一个字符串分割的问题,在C++的标准库里面没有字符分割函数split ...

  8. 用C#中的另一个字符串分割一个字符串

    我一直在使用Split()方法来拆分字符串,但这仅在按字符拆分字符串时才起作用. 有没有办法分割一个string ,另一个字符串是按参数分割? 我试过将拆分器转换为字符数组,但是没有运气. 换句话说, ...

  9. mysql完成字符串分割

    数据分割字符串,像spilt那样按某个符号将字符串分割成多个数组 mysql: 使用方法LENGTH()长度, SUBSTRING_INDEX()分割字符串, REPLACE()替换字符串 REVER ...

最新文章

  1. java继承对象转换_java 继承的基础(转)
  2. 地图漫游功能的具体体现_骏谷科技|数据中心三维可视化管理系统功能亮点
  3. 【图像分割模型】多感受野的金字塔结构—PSPNet
  4. 实用场景解析:那些漂亮的可视化图表都是如何做的?
  5. java高并发(五)并发模拟
  6. fork练习、从进程角度考虑堆区内存申请与释放的有关问题
  7. SDUT 3347 数据结构实验之数组三:快速转置
  8. 使用TestContainers进行数据库测试
  9. 笔记本启动与关闭自带键盘
  10. 最后期限 软件工程_如何在软件开发的最后期限内实现和平
  11. xcodebuild构建时报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1
  12. TMaskEdit组件的简单应用
  13. 华为:2021数字化转型,从战略到执行.pdf(附103页pdf下载链接)
  14. 使用git第一次成功,记录
  15. 【声源定位】基于matlab不同空间谱估计的声源定位算法比较【含Matlab源码 545期】
  16. c语言函数.pdf文档,c语言库函数表.pdf
  17. CV领域的国际国内期刊会议介绍
  18. 如何防止输入同样的编号到数据库中(30分)
  19. rep的软件用什么打开_rep文件用什么软件打开
  20. 计算机专业学生的必备文具,初一新生必备文具100件 学霸用的文具清单

热门文章

  1. 经典排序算法(10)——基数排序算法详解
  2. 1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)
  3. CF 1635E Cars 二分图 + 拓扑
  4. J - Just Multiplicative Inverse Gym - 102875J
  5. CF1369F-BareLee【博弈论,SG函数】
  6. P4093-[HEOI2016/TJOI2016]序列【CDQ分治,树状数组】
  7. jzoj1610(初中)-导弹【最大匹配,最短路,二分答案】
  8. 【贪心】奶酪厂(jzoj 1285)
  9. 纪中培训总结(2019年1月21~31日)
  10. 计蒜客 91 地铁 HDU 5263 平衡大师(二分+网络流)