深入C++ string.find()函数的用法总结
发布时间:2024-01-13 05:21:48
标签:c++,string,find函数
#include <string>
#include <iostream>
using namespace std;
void main()
{
////find函数返回类型 size_type
string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
string flag;
string::size_type position;
//find 函数 返回jk 在s 中的下标位置
position = s.find("jk");
if (position != s.npos) //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
{
cout << "position is : " << position << endl;
}
else
{
cout << "Not found the flag" + flag;
}
//find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置
flag = "c";
position = s.find_first_of(flag);
cout << "s.find_first_of(flag) is : " << position << endl;
//从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标
position=s.find("b",5);
cout<<"s.find(b,5) is : "<<position<<endl;
//查找s 中flag 出现的所有位置。
flag="a";
position=0;
int i=1;
while((position=s.find_first_of(flag,position))!=string::npos)
{
//position=s.find_first_of(flag,position);
cout<<"position "<<i<<" : "<<position<<endl;
position++;
i++;
}
//查找flag 中与s 第一个不匹配的位置
flag="acb12389efgxyz789";
position=flag.find_first_not_of (s);
cout<<"flag.find_first_not_of (s) :"<<position<<endl;
//反向查找,flag 在s 中最后出现的位置
flag="3";
position=s.rfind (flag);
cout<<"s.rfind (flag) :"<<position<<endl;
}
说明:
1.如果string sub = ”abc“;
string s = ”cdeabcigld“;
s.find(sub) , s.rfind(sub) 这两个函数,如果完全匹配,才返回匹配的索引,即:当s中含有abc三个连续的字母时,才返回当前索引。
s.find_first_of(sub), s.find_first_not_of(sub), s.find_last_of(sub), s.find_last_not_of(sub) 这四个函数,查找s中含有sub中任意字母的索引。
2.如果没有查询到,则返回string::npos,这是一个很大的数,其值不需要知道。


猜你喜欢
- 本文实例为大家分享了js实现简单贪吃蛇效果的具体代码,供大家参考,具体内容如下上代码之前,先给大家看一下效果:是不是想说:我能这样玩一天…话
- 尽管asyncio库是使用单线程来实现协程的,但是它还是并发的,乱序执行的。可以说是单线程的调度系统,并且由于执行时有延时或者I/O中断等因
- 今天我们就从这个问题说起:临时表有哪些特征,适合哪些场景?这里,我需要先帮你厘清一个容易误解的问题:有的人可能会认为,临时表就是内存表。但是
- 本文实例讲述了js对象基础用法。分享给大家供大家参考。具体分析如下:js对象在本质上与数组相同,都是存放一组数据。但创建方法有所不同,对象需
- 首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class Imag
- 选择排序算法步骤:找到数组中最小的那个元素中,将它和数组的第一个元素交换位置,在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置,
- <%@ Language=VBScript %><%Option Explicit %><%Dim strUR
- 这些标记告诉预处理器,它们包含代码,并且应对它们作出处理。与 CGI 非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给
- 效果图:代码如下:<!DOCTYPE html><html lang="en"><head
- 用于制作自动化微信聊天图片,通过图片生成段子视频根据一个txt文档input.txtL 一路走过来好热啊
- 一、定时器概述window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInter
- 本文实例讲述了php实现xml与json之间的相互转换功能。分享给大家供大家参考,具体如下:用php实现xml与json之间的相互转换:相关
- 前言:我们平常会使用很多社交媒体,如微信、微博、抖音等等,在这些平台上面,我们会关注某些KOL,同时自己身边的亲朋好友也会来关注我们,成为我
- 如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。 1. 向mysqld
- 看到一篇Implementing an Infinite Scroll with Vue.js , 觉得挺实用的就看了下, 顺便简单翻译了一
- python / 和 % 和 //(地板除)用于对数据进行除法运算。python中 // 和 / 和 %简介python中与除法相关的三个运
- 所谓“评论”不是必须得有文本框,用户录入提交数据才算,广义上的评论包括用户的任何“表态”,典型如打分。我接触电子商务时间并不长,最早应该是0
- 本文实例讲述了微信小程序module.exports模块化操作。分享给大家供大家参考,具体如下:文件 目录如上图:看到网上写的模块化都比较复
- Python是一个脚本语言,被解释器解释执行。它的发布方式:.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装P
- 将try except中捕获到的异常信息输出到日志文件中,方便查找错误原因,tranceback模块提供了把详细出错堆栈信息格式化成字符串返