原文链接

#include <string>
#include <iostream>
using namespace std;

void main()
{

  1. ////find函数返回类型 size_type
  2. string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
  3. string flag;
  4. string::size_type position;
  5. //find 函数 返回jk 在s 中的下标位置
  6. position = s.find("jk");
  7. if (position != s.npos)  //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
  8. {
  9. cout << "position is : " << position << endl;
  10. }
  11. else
  12. {
  13. cout << "Not found the flag" + flag;
  14. }
  1. //find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置
  2. flag = "c";
  3. position = s.find_first_of(flag);
  4. cout << "s.find_first_of(flag) is : " << position << endl;
  1. //从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标
  2. position=s.find("b",5);
  3. cout<<"s.find(b,5) is : "<<position<<endl;
  1. //查找s 中flag 出现的所有位置。
  2. flag="a";
  3. position=0;
  4. int i=1;
  5. while((position=s.find_first_of(flag,position))!=string::npos)
  6. {
  7. //position=s.find_first_of(flag,position);
  8. cout<<"position  "<<i<<" : "<<position<<endl;
  9. position++;
  10. i++;
  11. }
  1. //查找flag 中与s 第一个不匹配的位置
  2. flag="acb12389efgxyz789";
  3. position=flag.find_first_not_of (s);
  4. cout<<"flag.find_first_not_of (s) :"<<position<<endl;
  1. //反向查找,flag 在s 中最后出现的位置
  2. flag="3";
  3. position=s.rfind (flag);
  4. cout<<"s.rfind (flag) :"<<position<<endl;
  5. }

说明:

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简析的更多相关文章

  1. RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  2. Android 启动过程简析

    首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...

  3. Android RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  4. Java Annotation 及几个常用开源项目注解原理简析

    PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...

  5. 【ACM/ICPC2013】POJ基础图论题简析(一)

    前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...

  6. SimpleDateFormat使用简析

    title: SimpleDateFormat使用简析 date: 2016-07-11 11:48:20 tags: Java SimpleDateFormat --- [转载自博客:http:// ...

  7. zxing二维码扫描的流程简析(Android版)

    目前市面上二维码的扫描似乎用开源google的zxing比较多,接下去以2.2版本做一个简析吧,勿喷... 下载下来后定位两个文件夹,core和android,core是一些核心的库,android是 ...

  8. AFNetworking封装思路简析

    http://blog.csdn.net/qq_34101611/article/details/51698473 一.AFNetworking的发展 1. AFN 1.0版本 AFN 的基础部分是 ...

  9. [转载] Thrift原理简析(JAVA)

    转载自http://shift-alt-ctrl.iteye.com/blog/1987416 Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化.发序列化机制:当我们开 ...

随机推荐

  1. vue的watch详细用法

    https://www.cnblogs.com/shiningly/p/9471067.html https://www.jb51.net/article/139282.htm

  2. 树莓派安装Raspbian系统以及相关配置(通过Windows)

    1.准备 树莓派3B+(E14) 一张内存卡 (至少16G) 一个读卡器 普通电脑显示器,键盘,鼠标 2.操作系统烧制(下面的操作都是在Windows中操作,通过读开启读取内存卡) Raspbian系 ...

  3. Hive学习(三)Hive的Java客户端操作

    Hive的Java客户端操作分为JDBC和Thrifit Client,首先启动Hive远程服务: hive --service hiveserver 一.JDBC 在MyEclipse中首先创建连接 ...

  4. Linux环境常用命令

    bash host                    #查看IP对应机器名 hostname         #查看本机名         hostname –i     #查看本机IP mssh ...

  5. 如何获取Android手机的唯一标识

    有很多场景和需求你需要用到手机设备的唯一标识符. 在Android中,有以下几种方法获取这样的ID. 1. The IMEI: 仅仅只对Android手机有效: 1 2 TelephonyManage ...

  6. 怎么查找Linux系统调用

    目前都是这么找: git grep SYSCALL_DEFINE | grep signal系统调用的函数名本来是叫sys_xxx,现在都是用宏SYSCALL_DEFINE(XXX),搞得无法找到sy ...

  7. Murano Weekly Meeting 2015.09.29

    Meeting time: 2015.September.29th 1:00~2:00 Chairperson:  Serg Melikyan, PTL from Mirantis Meeting s ...

  8. (转)rsync数据备份方案

    rsync数据备份方案 原文:http://blog.51cto.com/irow10/1826458 最近整理了下公司的数据备份情况.以下是部分操作的过程 1.rsync数据备份,具体备份过程就不详 ...

  9. 修改linux文件权限命令

    修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文 ...

  10. php和java的区别

    php和java的区别 前几天有个大学的同学给我来电话,他是在培训java的,然后我们就讨论了一下关于php和java的优劣区别(我们的是初学者,所以下面发表的内容可能不会很精准到位,望体谅): 我们 ...