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

1、字符串查找

 s.find(s1)         //查找s中第一次出现s1的位置,并返回(包括0)

 s.rfind(s1)        //查找s中最后次出现s1的位置,并返回(包括0)

 s.find_first_of(s1)       //查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)

s.find_last_of(s1)       //查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)

s.fin_first_not_of(s1)         //查找s中第一个不属于s1中的字符的位置,并返回(包括0)

s.fin_last_not_of(s1)         //查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

2、字符串截取

s.substr(pos, n)    //截取s中从pos开始(包括0)的n个字符的子串,并返回

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

3、字符串替换

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

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

#include <iostream>
using namespace std; /* 字符串查找 */
void findSubString(string str){
// find()函数的使用,返回查找对象第一次出现的位置.
cout << str.find("fs") << endl;
// rfind()函数的使用,返回查找对象最后出现的位置
cout << str.rfind("s") << endl;
} /* 字符串截取 */
void getSubString(string str){
// substr(pos)函数的使用,返回从pos开始(包含pos位置的字符)所有的字符
cout << str.substr(2) << endl;
// substr(pos,n),返回从pos开始(包含pos位置的字符)n个字符
cout << str.substr(2, 2) << endl;
} /* 字符串替换 */
void replaceString(string str){
// replace(pos,n,s1),用s1替换从pos开始的n个字符
cout << str.replace(0,2,"xiaoming") << endl;
} int main()
{
string str = string("sdfsf");
// findSubString(str);
// getSubString(str);
replaceString(str);
return 0;
}

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

#include <iostream>
using namespace std; /* 用x替换a */
void replaceAWithX(string str){
int pos;
pos = str.find("a");
while(pos != -1){
// str.length()求字符的长度,注意str必须是string类型
str.replace(pos,string("a").length(),"x");
pos = str.find("a");
} cout << str << endl;
} int main()
{
string str = string("fsafsdf");
replaceAWithX(str);
return 0;
}

C++ 中字符串查找、字符串截取、字符串替换的更多相关文章

  1. ios 字符串处理:截取字符串、匹配字符串、分隔字符串

    1.截取字符串 NSString*string =@"sdfsfsfsAdfsdf";string = [string substringToIndex:7];//截取掉下标7之后 ...

  2. 字符串函数(strcpy字符串拷,strcmp字符串比较,strstr字符串查找,strDelChar字符串删除字符,strrev字符串反序,memmove拷贝内存块,strlen字符串长度)

    1.strcpy字符串拷贝拷贝pStrSource到pStrDest,并返回pStrDest地址(源和目标位置重叠情况除外) char *strcpy(char *pStrDest, const ch ...

  3. js获取(包括中文)字符串长度与截取字符串

    /** * @param begin 截取开始的索引 * @param num 截取的长度 */ //截取字符串(包括中文) function SetString(str, len) { var st ...

  4. js常用方法和检查是否有特殊字符串和倒序截取字符串

     js常用方法demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  5. lua中 string.find(查找获取字符串) string.gsub(查找替换字符串) string.sub(截取字符串)

    > aaa='/p/v2/api/winapi/adapter/lgj'> print(string.find(aaa, "^/.+/adapter/(.*)"))1 ...

  6. linux中shell,awk,sed截取字符串方法总结

    转自:http://www.cnblogs.com/kinga/p/5772566.html Shell 第一种: ${parameter%word} 最小限度从后面截掉word${parameter ...

  7. 实现一个字符串匹配算法,从字符串 H 中,查找 是否存在字符串 Y ,若是存在返回所在位置的索引,不存在返回 -1(不基于indexOf/includes方法)

    /** 1.循环原始字符串的每一项,让每一项从当前位置向后截取 H.length 个字符, 然后和 Y 进行比较,如果不一样,继续循环:如果一样返回当前索引即可 **/ function myInde ...

  8. xml中的<if>和截取字符串

    <#if (envPollute=='1')>√</#if><#if (envPollute=='0')>√</#if>${as_title?subst ...

  9. SQL--去除字符串空格、截取字符串

  10. BAT批处理中的字符串处理详解(字符串截取)

    BAT批处理中的字符串处理详解(字符串截取)   BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理 ...

随机推荐

  1. Wannafly Winter Camp 2020 Day 6C 酒馆战棋 - 贪心

    你方有 \(n\) 个人,攻击力和血量都是 \(1\).对方有 \(a\) 个普通人, \(b\) 个只有盾的,\(c\) 个只有嘲讽的,\(d\) 个有盾又有嘲讽的,他们的攻击力和血量都是无穷大.有 ...

  2. malloc分配内存的结构

    在C/C++,我们都可以使用malloc进行分配大小,单位是字节.   malloc实际分配的内存大小和传入的参数其实是不同的.   实际分配的内存大小>传入的参数大小. malloc分配的内存 ...

  3. Java求素数和

    描述 从键盘任意输入两个整数m,n,编程计算并输出m~n之间的所有素数之和. 输入 在一行上输出m和n. 输出 m和n之间(包括m和n)的素数的和 难度 一般 输入示例 2 5 输出示例 10 完成代 ...

  4. 从Windows10中彻底删除【3D对象】文件夹

    Remove "3D object" folder from My Computer Windows Registry Editor Version 5.00 [-HKEY_LOC ...

  5. docker下载镜像太慢的解决方案

    参考链接:https://blog.csdn.net/weixin_43569697/article/details/89279225 docker下载镜像卡死或太慢找了网上很多方法,使用镜像中国也是 ...

  6. pip淘宝镜像安装

    pip install virtualenvwrapper-win pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv ...

  7. ArcMap 导入 CGCS2000 点坐标数据

    最近开始用 ArcGIS 做管网项目,第一步就接触到 CGCS2000 坐标系数据,要把管网的数据给导入进来, 一开始不知道是哪个坐标系,试了半天,都偏到国外去了,最后在一篇博客里找到了类似的管网数据 ...

  8. Git和TortoiseGit

    1.简介 Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目.它采用了分布式版本库的方式,不必服务器端软件支持. 2.Git和Svn的区别 1.Git 是分布式的,SVN 不是 ...

  9. 【Unity|C#】基础篇(15)——异常处理(try/catch/throw)

    [学习资料] <C#图解教程>(第22章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  10. sqlalchemy_mptt一次调优

    问题背景: 我用sqlalchemy_mptt构建了一个多级分类项目,数据库用了sqlite.随着数据条数越来越多,写入速度逐渐变慢,一棵树的插入甚至需要1分钟,远远不能满足需求 分析思路: 1. 批 ...