C++ 中字符串查找、字符串截取、字符串替换

参照:C++基础-string截取、替换、查找子串函数

1、字符串查找

1 s.find(s1) //查找s中第一次出现s1的位置,并返回(包括0) 2 3 s.rfind(s1) //查找s中最后次出现s1的位置,并返回(包括0) 4 5 s.find_first_of(s1) //查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0) 6 7s.find_last_of(s1) //查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0) 8 9s.fin_first_not_of(s1) //查找s中第一个不属于s1中的字符的位置,并返回(包括0) 10 11s.fin_last_not_of(s1) //查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

2、字符串截取

1s.substr(pos, n) //截取s中从pos开始(包括0)的n个字符的子串,并返回 2 3s.substr(pos) //截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

3、字符串替换

 s.replace(pos, n, s1)     //用s1替换s中从pos开始(包括0)的n个字符的子串

4、代码测试(字符串操作.cpp)

1#include <iostream> 2using namespace std; 3 4/* 字符串查找 */ 5void findSubString(string str){ 6 // find()函数的使用,返回查找对象第一次出现的位置. 7 cout << str.find("fs") << endl; 8 // rfind()函数的使用,返回查找对象最后出现的位置 9 cout << str.rfind("s") << endl; 10} 11 12/* 字符串截取 */ 13void getSubString(string str){ 14 // substr(pos)函数的使用,返回从pos开始(包含pos位置的字符)所有的字符 15 cout << str.substr(2) << endl; 16 // substr(pos,n),返回从pos开始(包含pos位置的字符)n个字符 17 cout << str.substr(2, 2) << endl; 18} 19 20/* 字符串替换 */ 21void replaceString(string str){ 22 // replace(pos,n,s1),用s1替换从pos开始的n个字符 23 cout << str.replace(0,2,"xiaoming") << endl; 24} 25 26int main() 27{ 28 string str = string("sdfsf"); 29 // findSubString(str); 30 // getSubString(str); 31 replaceString(str); 32 return 0; 33}

5、字符替换(用x替换字符串中所有的a.cpp)

1#include <iostream> 2using namespace std; 3 4/* 用x替换a */ 5void replaceAWithX(string str){ 6 int pos; 7 pos = str.find("a"); 8 while(pos != -1){ 9 // str.length()求字符的长度,注意str必须是string类型 10 str.replace(pos,string("a").length(),"x"); 11 pos = str.find("a"); 12 } 13 14 cout << str << endl; 15} 16 17int main() 18{ 19 string str = string("fsafsdf"); 20 replaceAWithX(str); 21 return 0; 22}

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593

JS 苹果手机日期显示NaN问题

问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl