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,这是一个很大的数,其值不需要知道。
string find简析的更多相关文章
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Android 启动过程简析
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
- Android RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- Java Annotation 及几个常用开源项目注解原理简析
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
- 【ACM/ICPC2013】POJ基础图论题简析(一)
前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...
- SimpleDateFormat使用简析
title: SimpleDateFormat使用简析 date: 2016-07-11 11:48:20 tags: Java SimpleDateFormat --- [转载自博客:http:// ...
- zxing二维码扫描的流程简析(Android版)
目前市面上二维码的扫描似乎用开源google的zxing比较多,接下去以2.2版本做一个简析吧,勿喷... 下载下来后定位两个文件夹,core和android,core是一些核心的库,android是 ...
- AFNetworking封装思路简析
http://blog.csdn.net/qq_34101611/article/details/51698473 一.AFNetworking的发展 1. AFN 1.0版本 AFN 的基础部分是 ...
- [转载] Thrift原理简析(JAVA)
转载自http://shift-alt-ctrl.iteye.com/blog/1987416 Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化.发序列化机制:当我们开 ...
随机推荐
- 转载 Some indexes or index [sub]partitions of table VAS.TAB_PUB_CALLLOG have been marked unusable
http://www.xifenfei.com/2011/12/some-indexes-or-index-subpartitions-of-table-vas-tab_pub_calllog-hav ...
- 移动测试之appium+python 环境安装(一)
准备工作 一.Python安装 下载地址 及环境变量配置 注意:安装时候记得勾选上Add python.exe to Path.这可以省略环境变量配置. 如果没有勾选,安装下边操作 找到path环境变 ...
- Java-IO中的节点流和处理流
理解好Java-IO中的节点流和处理流是理解Java输入.输出的关键基础,因此,了解节点流和处理流相关的知识点尤为重要. 1.定义 (1)节点流:可以从或向一个特定的地方(节点)读写数据.如FileR ...
- 配置WAMP完美攻略
软件介绍 Wamp Server 是一款功能强大的PHP 集成安装环境. 为了节约时间,本次使用 Wamp Server 来进行配置. wamp 的全部含义就是本篇文章的标题. 使用版本和操作系统 W ...
- Win2003 控制面板 打不开
windown 2003 控制面板打不开 在运行框中输入regedit,进入注册表中的 HKEY_LOCAL_MACHINE/SYSTEM\Current ControlSet\Control\NLS ...
- Big Data Opportunities and Challenges(by周志华)论文要点
大数据环境下的机器学习 三种误解:模型不再重要(大量数据上复杂模型依然提升显著,大数据是的复杂模型充分利用数据且难以过拟合),相关性就足够了(因果关系重要性无法被替代),以前的研究方向不再重要(高性能 ...
- axios处理http请求
axios中文文档 https://github.com/mzabriskie/axios#using-applicationx-www-form-urlencoded-format axios文档 ...
- Kudu的概念术语
不多说,直接上干货! Columnar Data Store(列式数据存储) Kudu 是一个 columnar data store(列式数据存储).列式数据存储在强类型列中.由于几个原因,通过适当 ...
- 修复kindEditor点击加粗, 内容焦点跳动的问题
大概1560~1569行 pos : function() { var self = this, node = self[0], x = 0, y = 0; if (node) { if (node. ...
- F12 chrome开发者工具
1.Network详解篇 : https://blog.csdn.net/qq_39208536/article/details/79304148 2.sources: js调试篇 http://b ...