cb20a_c++_string类型的查找
s.find(args) //精确匹配,顺序查找, abc, 连续的包含在abcde,或者fabcde;
s.rfind(args) //精确匹配。反向查找
s.find_first_of(args)//不连续,间隔的,一个一个的找,比如扎到a就返回位置。
s.find_last_of(args)//反向查找
s.find_first_not_of(args)//不连续,间隔的,一个一个的找,比如知道非a就返回非a的位置,就是除了a,其他都返回找到了。
s.find_last_not_of(args)//反向查找

欢迎讨论,相互学习。 txwtech@163.com

 /*cb20a_c++_string类型的查找
s.find(args) //精确匹配,顺序查找, abc, 连续的包含在abcde,或者fabcde;
s.rfind(args) //精确匹配。反向查找
s.find_first_of(args)//不连续,间隔的,一个一个的找,比如扎到a就返回位置。
s.find_last_of(args)//反向查找
s.find_first_not_of(args)//不连续,间隔的,一个一个的找,比如知道非a就返回非a的位置,就是除了a,其他都返回找到了。
s.find_last_not_of(args)//反向查找 欢迎讨论,相互学习。 txwtech@163.com
*/
#include <iostream>
#include <string> using namespace std; int main()
{
string name("AnnaBelle");
string::size_type pos1=name.find("nna");////精确匹配
cout << "如果找到:返回下标:" << pos1 << endl;
if (pos1 == string::npos)
cout << "如果npos,表示没有找到" << endl;
else
cout << "找到了下标: " << pos1 << endl; name = "r2%d3";
string numerics("");
string::size_type pos=name.find_first_of(numerics);
cout << "找name里面的数字,在numerics里面包含有。找到2,就找到了,后面不找了" <<pos<< endl;
if (pos == string::npos)
cout << "如果npos,表示没有找到" << endl;
else
cout << "找到了下标: " << pos1 << endl;
string::size_type pos3 = ;
while ((pos3 = name.find_first_of(numerics, pos3)) != string::npos)//用循环把所有找出来
{
cout << "找到了数字,内容是: " << name[pos3] <<endl<< endl;
++pos3;
}
cout << "找出不是数字的方法:" << endl;
pos3 = ;
while ((pos3 = name.find_first_not_of(numerics, pos3)) != string::npos)//用循环把所有找出来
{
cout << "找不是数字,内容是: " << name[pos3] << endl<<endl;
++pos3;
}
string letters("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
pos = ;
while ((pos = name.find_first_of(letters, pos)) != string::npos)
{
cout << "letters里面找到了字母:"<<name[pos] << endl;
++pos;
}
cout << "找出不是字母的方法:" << endl;
pos = ;
while ((pos = name.find_first_not_of(letters, pos)) != string::npos)
{
cout << "letters里面找到了非字母的其他字符:" << name[pos] << endl<<endl;
++pos;
} string river("Mississippi");
string river2("a2sipii");
string::size_type first_pos = river.find("is");
cout << "first_pos前面开始找:下标是:"<< first_pos << endl;
string::size_type last_pos = river.rfind("is");
cout << "last_pos后面开始找:下标是:" << last_pos << endl << endl; //name = "r2%d3";
//string numerics("0123456789");
pos = name.find_last_of(numerics);
cout << "name在numerics反向查找位置的索引:" << pos << endl << endl; return ;
}

cb20a_c++_string类型的查找的更多相关文章

  1. JavaScript的基本包装类型_String类型

    String类型概述 String在底层字符串是以字符数组的形式保存的 var str = "Hello"; // 在底层其实就是['H','e','l','l','o'] 字符串 ...

  2. 用grep在子目录中指定的文件类型中查找(转载)

    转自:http://www.ai7.org/wp/html/653.html grep -r abcd *.py 这样的命令得不到你期待的结果,而 grep -r abcd * 这样得到的结果又太多, ...

  3. openEntityForm时候如何给关于(regardingobjectid)类型查找字段赋值?

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  4. openEntityForm如何给关于(regardingobjectid)类型查找字段赋值?

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. Linux(三)__文件权限、系统的查找、文本编辑器

    一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...

  6. Linux文件查找

    Linux下查找文件的命令有两个; locate: find : locate这个命令对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了查 找文件速度很快,但是locate ...

  7. 《CLR via C#》读书笔记(6)类型和成员基础

    6.1 类型的各种成员 在一个类型中,可以定义0个或者多个以下种类的成员: 常量 常量是在编译时设置其值并且永远不能更改其值的字段.使用常量可以为特殊值提供有意义的名称以代替数字文本,以使代码变得更容 ...

  8. 小白学习mysql之优化基础(EXPLAIN的连接类型)

    ## 导语很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了.这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只 ...

  9. 菜鸟学Linux命令:find命令 查找文件

    find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录]  [查找规则(选项)]  [查找完后执行的动作] 参数规则 - ...

随机推荐

  1. poi 针对word模板内容替换

    最近多了一个需求,需要对word模板内容进行替换,一开始用的是word03版的,替换起来比较简单,主要是range对像替换非常方便,而且可以保留替换前的字体样式. InputStream is = n ...

  2. Unity调用Android Studio中的Java方法

    1. 新建Unity项目: 2. Android Studio中新建EmptyActivity: 3. 新建安卓项目时记住最小版本号: 4. 将左侧项目文件浏览面板切换到Project项下,在本项根节 ...

  3. ReentrantLock解析及源码分析

    本文结构 Tips:说明一部分概念及阅读源码需要的基础内容 ReentrantLock简介 公平机制:对于公平机制和非公平机制进行介绍,包含对比 实现:Sync源码解析额,公平和非公平模式的加锁.解锁 ...

  4. pandas如何逐行需改DataFrame

    逐行修改DataFrame而不会报SettingwithCopyWarning警告的方法: df.iloc[行数,df.columns.get_loc(列名)]=new_value 参考:https: ...

  5. 【JVM】垃圾回收的四大算法

    GC垃圾回收 JVM大部分时候回收的都是新生代(伊甸区+幸存0区+幸存1区).按照回收的区域可以分成两种类型:Minor GC和Full GC(MajorGC). Minor GC:只针对新生代区域的 ...

  6. cpprestsdk同时使用boost.asio,acceptor就一直报Invalid argument。

    本文目录,首先总结问题,然后案例还原. 总结: 问题的根本在于boost.asio作为header-only库,运行程序与动态库之间容易因为版本错配而产生运行期莫名其妙的问题. cpprestsdk使 ...

  7. Shell 脚本(四) ”read 读取控制台输入” 与 “函数”

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 八.read 读取控制台输入 1.基本语法 read(选项)(参数) 选项: -p: 指定读取值时的提示 ...

  8. Java实现蓝桥杯 最短路

    问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从1号点到其他点的最短路(顶点从1到n编号). 输入格式 第一行两个整数n, m. 接下来的m行,每行有三个 ...

  9. Java 第十一届 蓝桥杯 省模拟赛 户户通电(图算法)

    户户通电 题目 问题描述 2015年,全中国实现了户户通电.作为一名电力建设者,小明正在帮助一带一路上的国家通电. 这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电 ...

  10. (Java实现) 删数问题

    删数问题(需知道的数学定理) 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数.对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的 ...