C++中查找字符或者字符串的一些函数

C/C++常用的字符串函数 字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,需要调用头文件include。在C/C++编程中经常会遇到字符串的处理,比如路径的切割、信号的判断(字符串比较),以及字符串大小的计算,熟练掌握常用的字符串函数,了解其可以实现的功能,对于做项目大有裨益。 阅读详情

string类的头文件提供了很多搜索相关的函数比如find()函数及其变体。这使得我们可以以多种不同的方式在字符串中搜索给定的子字符串或字符。但是对于初学者来讲,经常被这些长相类似的函数所混淆。 
下面总结了string类的find相关函数:

应用例句:

int main(int argc, char *argv)
{
	string teststr = "dfdvjfjbjgkbnfbvcl#vfbkng";
	/*stringstream ss;
	ss.str(teststr);*/
	char ch = '0';
	
		string::size_type offisetpre=teststr.find_first_of('#', 0);
		string::size_type offisetlst = teststr.find_last_of('#',teststr.npos);
		cout << "   pre   " << offisetpre << "   lst   " << offisetlst << endl;
		offisetpre = teststr.find("#v", 0);/*从前向后找*/
		 offisetlst = teststr.rfind("#v", teststr.npos);/*从后向前找*/
		cout << "   pre   " << offisetpre << "   lst   " << offisetlst << endl;
	system("pause");
	return 0;
}

1、find():

find函数有四种变体:

方法原型描述
size_type find(const string & str, size_type pos = 0) const从字符串的pos位置开始,查找子字符串str。如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回string::npos
size_type find(const char * s, size_type pos = 0) const从字符串的pos位置开始,查找子字符串s。如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回string::npos
size_type find(const char * s, size_type pos = 0, size_type n) const从字符串的pos位置开始,查找s的前n个字符组成的子字符串。如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回string::npos
size_type find(const char ch, size_type pos = 0) const从字符串的pos位置开始,查找字符ch。如果找到,则返回该子字符串首次出现的位置;否则,返回string::npos

P.S.string::npos是字符串可储存的最大字符数,通常是无符号int或无符号long的最大取值。

string库还提供了相关的方法:rfind(),find_first_of(),find_last_of(),find_first_not_of(),find_last_not_of()。他们的重载函数特征标都与find()方法相同。

2、rfind():

原型:

size_type rfind(const string & str, size_type pos = npos) const;
size_type rfind(const char * s, size_type pos = npos) const;
size_type rfind(const char * s, size_type pos = npos, size_type n) const;
size_type rfind(const char ch, size_type pos = npos) const;
  •  

rfind()方法查找子字符串或字符最后一次出现的位置,与find不同的是rfind是从后向前查找。

3、find_first_of():

原型:

size_type find_first_of(const string & str, size_type pos = 0) const;
size_type find_first_of(const char * s, size_type pos, size_type n) const;
size_type find_first_of(const char * s, size_type pos = 0) const;
size_type find_first_of(char c, size_type pos = 0) const;

find_first_of()方法在字符串中查找参数中任何一个字符首次出现的位置。例如,下面的语句返回r在”cobra”中的位置(即索引3),因为这个”hark”中各个字母在”cobra”首次出现的位置:

string snake1 = "cobra";
int where = snake1.find_first_of("hark");

4、find_last_of():

原型:

size_type find_last_of(const string & str, size_type pos = npos) const;
size_type find_last_of(const char * s, size_type pos, size_type n) const;
size_type find_last_of(const char * s, size_type pos = npos) const;
size_type find_last_of(char c, size_type pos = npos) const;

find_last_of()方法在字符串中查找参数中任何一个字符最后一次出现的位置。

5、find_first_not_of():

原型:

size_type find_first_not_of(const string & str, size_type pos = 0) const;
size_type find_first_not_of(const char * s, size_type pos, size_type n) const;
size_type find_first_not_of(const char * s, size_type pos = 0) const;
size_type find_first_not_of(char c, size_type pos = 0) const;

find_first_not_of()方法在字符串中查找第一个不包含在参数中的字符,因此下面的语句返回c在”cobra”中的位置,因为”hark”中没有c:

string snake1 = "cobra";
int where = snake1.find_first_not_of("hark");

6、find_last_not_of():

原型:

size_type find_last_not_of(const string & str, size_type pos = npos) const;
size_type find_last_not_of(const char * s, size_type pos, size_type n) const;
size_type find_last_not_of(const char * s, size_type pos = npos) const;
size_type find_last_not_of(char c, size_type pos = npos) const;

find_last_not_of()方法在字符串中查找最后一个不包含在参数中的字符。

string类型find()函数的运用 P1308 统计单词数 string类型find函数的运用与理解。 #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <stack> #include <set> #include <stri... 阅读详情

相关推荐

【C++】find() 函数全解

C++计算机软件开发中,对字符串进行操作是常见的需求。字符串里的查询功能是基础,也是高性能编程中的重要一环。C++ 中提供了完善的字符串操作函数,而其中的 find() 函数,是用于在字符串中查找子串或字符的工具。 本文将全面解析 C++ 中的 find() 函数,包括基础解释,示例解析,以及实际应用中的特别经验。我们将重点解析不同功能开发情景中的实现,并提供简单明显的实验代码。 2025.1.12-✍66min

禅宗里有一个词叫做“因缘和合”。 所谓因缘,是指事件要发生所必须的条件。因缘和合就是当你聚集了这件事的一切条件,它就会自然而然的发生。“它就会自然而然的发生”,这种朴素而坚定的价值观让我们感到无比安心,安心到可以不用有任何担心焦虑。 5219

string的find( )函数✅

基本用法 string的find()函数用于找出字母在字符串中的位置。 find(str,position) str:是要找的元素 position:字符串中的某个位置,表示从从这个位置开始的字符串中找指定元素(不填第二个参数,默认从字符串的开头进行查找) 返回值为目标字符的位置,当没有找到目标字符时返回npos ...

Running Snail 3万+

指定位置插入字符串(c++insert函数、find函数使用)

insert函数、find函数进行指定位置插入字符串问题。

weixin_63003502的博客 1万+

String find函数(详解,很容易懂)

#include<cstring> #include<cstdio> #include<iostream> using namespace std; int main() { //find函数返回类型 size_type string s("1a2b3c4d5e6f7jkg8h9i1a2b3c4d5e6f7g8ha9i"); string flag; string::size_type position;//写成int也行 //find 函数 返回 "

qq_43738331的博客 2万+

c++之string字符串常用函数

c++ string常用字符串函数

qq_52048052的博客 3286

C++中常用的字符串函数

C++语言提供了比C语言更丰富的字符串处理功能。它可以在字符串上经行输入,输出,合并,修改,比较,转换,复制,搜索等操作。使用这些现成的功能可以大大减少我们的编程的负担。 输入和输出的字符串函数,如printf,puts,cout,scanf,gets,cout等,在使用时应包含头文件cstdio,并使用其他字符串函数包含头文件cstring。 cstr...

菜鸟进阶 3191

练习7-10 查找指定字符

本题要求编写程序,从给定字符串中查找某指定的字符。 输入格式: 输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。 输出格式: 如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。 输入样例1: m programming 输出样例1: index = 7 输入样例2: a 1234 输出样例2: Not Found 方法一:使用getchar检测回车 #include<s

weixin_44247857的博客 1822

c++中字符串操作函数合集

文章介绍了c++中常用的字符串操作函数及其用法

weixin_55735677的博客 2410

C++字符串常见操作函数最全总结

在做题过程中经常用到字符串,有时候费了很大力气去写一个函数,结果最后发现C++已经封装好了此类函数。。。所以花点时间总结一下。

KI的博客 10万+

【021】C/C++ 语言初学者必备:字符串处理函数入门

strlen:计算字符串的长度,即字符数组中不包括'\0'字符的字符数。strcpy:将一个字符串复制到另一个字符串中,包括'\0'在内。strncpy:将一个字符串的前n个字符复制到另一个字符串中,如果源字符串长度小于n,则会在末尾加上'\0'。strcat:将两个字符串连接起来,即将第二个字符串拼接到第一个字符串后面,并在末尾添加'\0'。strncat:将两个字符串的前n个字符连接起来,如果源字符串长度小于n,则会在末尾添加'\0'。strcmp:比较两个字符串是否相等,返回值为0表示相等。

Lion_Long的博客 1231

金蝶云星空应用开发初级考试题目汇总

摘要:本文为金蝶云星空应用开发初级考试题目汇总

2401_86113757的博客 3799

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

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)

AI人工智能的海洋 2万+

PCIe Crosslink

PCIe Crosslink(交叉连接)是一种特殊的PCIe链路连接方式,允许两个PCIe设备(通常是Root Complex或Endpoint)是指两个PCIe设备(如两个CPU、两个FPGA或两个GPU)通过PCIe链路直接连接,形成点对点(P2P)通信通道。:两个Intel/AMD CPU通过PCIe Crosslink直接通信(替代UPI/Infinity Fabric)。:主板需提供PCIe Crosslink连接(如特定插槽支持x16/x8 Crosslink)。

zly8865372的博客 1639

c++ string类字符串查找

1) find() 函数 find() 函数用于在 string 字符串中查找子字符串出现的位置,它其中的两种原型为: size_t find (const string& str, size_t pos = 0) const; size_t find (const char* s, size_t pos = 0) const; 第一个参数为待查找的子字符串,它可以是 string 字符串,也可以是C风格的字符串。第二个参数为开始查找的位置(下标);如果不指明,则从第0个字符开始查找。 请看下面的

qq_45797026的博客 3万+

SRAM compiler选项中 Soft Error Repair (SER)

引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,

hzmscut的博客 1158

课设报告-超市收银系统 javaweb(附源代码)

超市收银系统由收银员输入顾客的会员卡卡号(若有卡),所购买的货号。从数据库中取出有关价格信息,在把这些信息返回给收银台,同时把收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另外,对没有卡的消费不记录该顾客的消费情况扥个人信息,如果一个未持卡顾客一次购买满200元,可围棋发放一张会员卡,以后在该商场购物可享受9折优惠。

m0_71106830的博客 2975

C++中有关字符字符串的函数总结

replace(left,length,str2) 替换掉str1中从left开始的length长度的字符串为str2,多出str2的长度则删除str1中对应多出的字符。strpbrk返回一个指针,指向str2中任意一个字符第一次在str1中出现的位置,不存在则返回NULL。strrchr是查找一个字符在字符串中首次的位置并返回它的指针。strcspn是返回字符串str1中连续n个不含字符串str2中字符的字符数。strspn是返回str1中第一个不是str2中存在的字符的下标。

m0_63667664的博客 2397

RT-DETR算法优化改进:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测

DCNv4更快收敛、更高速度、更高性能,完美和RT-DETR结合,助力涨点

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1323

【C++】STL 容器 - string 字符串操作 ⑤ ( string 字符串查找 | find 函数查找字符串 | rfind 函数查找字符串 )

一、string 字符查找 - find 函数查找字符串 1、string 类 find 函数原型说明 2、代码示例 - 字符串查找 3、代码示例 - 统计字符串子串 二、string 字符查找 - rfind 函数查找字符串 1、string 类 rfind 函数原型说明 2、代码示例 - rfind 字符串查找

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7306

软件崩溃时Visual Studio中看不到有效的调用堆栈,使用Windbg动态调试去分析定位

当在Visual Studio中遇到软件崩溃且无法查看详细调用堆栈时,可以使用Windbg进行动态调试去分析定位问题。

dvlinker的技术专栏 1万+

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 784

C/C++字符串查找函数

C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之

7万+

【2026 Science Robotics】Learning realistic lip motions for humanoid face robots

哥伦比亚大学Yuhang Hu团队提出了一种创新方法,通过10自由度软体嘴唇设计和自监督学习算法解决仿人机器人嘴唇动作僵硬问题。研究采用变分自编码器(VAE)和面部动作Transformer(FAT)模型,将语音信号转化为机器人可执行的电机指令。实验表明,该方法在多语言测试中表现优异,用户偏好率达62.5%,显著提升了口型同步的真实感和流畅度。该成果突破了传统机械结构的限制,为跨越"恐怖谷效应"提供了有效解决方案。

志在山顶的人,不会贪念山腰的风景 308

C++字符串查找函数

在 C 语言和C++语言中,可用于实现字符串查找功能的函数非常多。在STL中,字符串的查找功能可以实现多种功能,比如说: 搜索单个字符、搜索子串; 实现前向搜索、后向搜索; 分别实现搜索第一个和最后一个满足条件的字符(或子串); 若查找 find() 函数和其他函数没有搜索到期望的字符(或子串),则返回 npos;若搜索成功,则返回搜索到的第 1 个字符或子串的位置。其中,npos...

积累点滴,保持自我 3031

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C++中string字符串查找某一子字符串所有出现过的位置,并计数

C++中string字符串查找某一子字符串所有出现过的位置,并计数 (可用于招聘软件笔试题中的应用) 直接上示例代码: #include <iostream> #include <string> using namespace std; int main() { string s = "abc abcde abcdefgh"; string sub = "abc"...

阿猪米德的小本本 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

string字符串查找指定字符,删除,追加,反转及比较

string字符串常用且易被忽略的操作:删除,查找,反转,追加

肩上风骋的博客 4598

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: string::reserve和string::size疑点分析
下一篇: 多进程通信
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值