C++string中find_first_not_of()函数和find_last_not_of()函数
C++string中find_first_not_of()函数和find_last_not_of()函数
C++string中find_first_not_of()函数和find_last_not_of()函数
在学习这两个函数之前建议先学C++string中find_first_of()函数和find_last_of()函数。
正向查找在原字符串中第一个与指定字符串(或字符)中的任一字符都不匹配的字符,返回它的位置。若查找失败,则返回npos。(npos定义为保证大于任何有效下标的值。)
- string str=“abcdefab”;
- cout<<str.find_first_not_of(‘h’)<<endl;//第二个参数为0,默认从原串下标为0开始查找。第一个a就和带查字符不同,故输出a的下标0。
- cout<<str.find_first_not_of(“twj”,1)<<endl;//从下标为1开始查,第一个b就和待查子串任一字符不同,故输出b的下标1。
正向查找在原字符串中最后一个与指定字符串(或字符)中的任一字符都不匹配的字符,返回它的位置。若查找失败,则返回npos。(npos定义为保证大于任何有效下标的值。)
string str=“abcdefab”;
cout<<str.find_last_not_of(‘h’)<<endl;//第二个参数为0,默认从npos逆向查。原串倒数第一个字符b和h就不同,故输出b的小标7。
cout<<str.find_last_not_of(“ab”,6)<<endl;//从原串下标为6开始逆向查询,第一个a和待查串中的字符a相同,不符合,故继续逆向比较。f和待查子串任一字符不同,故输出f的下标5。
代码:
#include<iostream>
using namespace std;
int main()
{string str="abcdefab";cout<<str.find_first_not_of('h')<<endl;//第二个参数为0,默认从原串下标为0开始查找。第一个a就和带查字符不同,故输出a的下标0。cout<<str.find_first_not_of("twj",1)<<endl;//从下标为1开始查,第一个b就和待查子串任一字符不同,故输出b的下标1。cout<<str.find_first_not_of("wbj",1)<<endl;//从下标为1开始,第一个b与待查子串中的b一样,故b不符合,继续c再和子串任一字符比较,结果都不同,故输出c的下标2。cout<<str.find_first_not_of("abcdefg")<<endl;//原串任一字符都出现在子串中,故找不到,返回npos。cout<<str.find_last_not_of('h')<<endl;//第二个参数为0,默认从npos逆向查。原串倒数第一个字符b和h就不同,故输出b的小标7。cout<<str.find_last_not_of("ab",6)<<endl;//从原串下标为6开始逆向查询,第一个a和待查串中的字符a相同,不符合,故继续逆向比较。f和待查子串任一字符不同,故输出f的下标5。cout<<str.find_last_not_of("abcdefhu")<<endl;//原串任一字符都出现在子串中,故找不到,返回npos。return 0;
}//有效的下标应该在0~len-1范围内。len=str.size();
运行结果:
C++string中find_first_not_of()函数和find_last_not_of()函数和C++string中find_first_of()函数和find_last_of()函数。它们很相似,仅仅可以说是名字有没有not的区别。它们都可以看做是字符与字符的比较,部分匹配。而C++string中find()和rfind()函数是完全匹配,若待查子串是字符串而不是字符的话,就可以说是字符串与字符串的比较。
C++string中find_first_not_of()函数和find_last_not_of()函数相关推荐
- std::string中的find_first_of()和find_last_of()函数
编程语言: c++/linux 在std::string中,有时需要找到一个string中最后一个或者第一个以某个特定的字符开始的位置或者下标,这时就需要使用find_first_of()和find_ ...
- C++ string中find ,rfind 等函数 用法总结及示例
string中 find()的应用 (rfind() 类似,只是从反向查找) 原型如下: (1)size_t find (const string& str, size_t pos = 0) ...
- String 中 split 方法的效率问题
问:String 中 split 方法使用时有什么效率问题吗? 答:String 的 split 分割字符串函数我们一般会如下方式使用. String[] arr = "a,b,c" ...
- C++string中用于查找的find系列函数浅析
https://www.cnblogs.com/zpcdbky/p/4471454.html 总述: 以下所讲的所有的string查找函数,都有唯一的返回类型,那就是size_type,即 ...
- C++string中的find()函数
C++ string中的find()函数 查找字符串s1中是否包含子串s2? 思路:此处需要用到string库中的find函数与npos参数. (1)string::npos参数 string::np ...
- string中的find函数
今天看代码,发现对STL中find函数掌握还是有点少,现在总结一下find函数的用法. 在非string类型的容器里,可以直接找出所对应的元素.find函数需要几个参数:迭代器.下标志.所要找的元素. ...
- java字符串剪切函数,java用substring函数截取string中一段字符串,substringstring
java用substring函数截取string中一段字符串,substringstring from http://www.cnblogs.com/laiweili/archive/2012/11 ...
- C++string中的insert()插入函数
C++string中的insert()插入函数 basic_string& insert (size_type pos, const basic_string& str); 在原串下标 ...
- C++string中replace()替换函数
C++string中replace()函数 basic_string& replace(size_type pos, size_type n, const basic_string& ...
最新文章
- 【2021】一位清华大佬的互联网秋招算法岗总结
- android设置列表id,学习Android绑定列表的时候提示:You must supply a resource ID for a TextView,有完整示例代码...
- java list负载_java集合的扩容和负载因子的总结
- ABAP TBL鼠标滚动到某行某列
- SDRAM读写一字(上)
- 当前页面excel导出_系统地学习Excel第03课,Excel的工作界面
- ArcGIS 后台服务器抛出异常
- Visual Studio 2010 Beta版包括InstallShield Limited Edition
- 将矩阵化为上三角矩阵
- matlab 转换为相对湿度
- 1.2. Container Overview
- 如何在时间序列预测中检测随机游走和白噪声
- java8 list find_java8 多个list对象用lambda求差集操作
- VC++ 扫雷游戏的界面框架(“雷”按钮),不得不佩服那些码农
- python读取 xls,xlsx,csv,doc,docx,pdf 格式的文件
- 源IP源MAC目的IP目的MAC,在整个网络中的变化
- android 使用Path实现涂鸦效果
- 一名理想主义的程序员
- Java并发(一)并发基础
- webRTC(六):webrtc信令服务器实现
热门文章
- HTML标签语义化——使用b标签,还是strong标签
- python 彩票 遗漏值_荐Python遗漏知识点一
- [网络安全提高篇] 一〇六.SQL注入之手工注入和SQLMAP入门案例详解
- App设计灵感之十二组精美的电商App设计案例
- Django MPTT —— 概述
- 【STM32】独立看门狗相关函数和类型
- 【计算机类】大学生计算机专业电子书汇总
- excel像素画教程_像素画新手教程:极简像素画角色分析
- 【读书笔记】练习的心态
- LeetCode 437. Path Sum III (STL map前缀和)