string::find()函数和string::npos静态成员常量的使用
string::find()函数
string::find()函数:是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数。如果查找成功,返回按照查找规则找到的第一个字符或者子串的位置;如果查找失败,返回string::npos,即-1(当然打印出的结果不是-1,而是一个很大的数值,那是因为它是无符号的)。
这里值得注意的是string::find()函数的返回值不是bool类型,所以无法通过find()函数的返回值直接判断是否存在相对应子串(特别是不匹配的情况下)。
string::npos静态成员常量
string::npos静态成员常量:是对类型为size_t的元素具有最大可能的值。当这个值在字符串成员函数中的长度或者子长度被使用时,该值表示“直到字符串结尾”。作为返回值他通常被用作表明没有匹配。
string::npos是这样定义的:static const size_type npos = -1;
所以在某种情况下,我们需要使用npos来作为find()结果的比较值
例如 str.find(another_str) != String::npos
就可以表示str中是否包含another_str子串,通过这个式子,我们就可以把find()函数返回无符号整型转换成bool类型,便于特定情况下的判断。
#include <iostream>
#include <limits>
#include <string>
using namespace std;
int main()
{ string filename = "test.cpp"; cout << "filename : " << filename << endl; size_t idx = filename.find('.'); //as a return value if(idx == string::npos) { cout << "filename does not contain any period!" << endl; } else { string tmpname = filename; tmpname.replace(idx + 1, string::npos, "xxx"); //string::npos作为长度参数,表示直到字符串结束 cout << "repalce: " << tmpname << endl; }
}
这里的str::npos就是一个长度参数,表示直到字符串的结束。
string::find()函数和string::npos静态成员常量的使用相关推荐
- C++中string::find()函数和string::npos函数的使用
1. string::find()函数和string::npos函数的介绍 我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不 ...
- string::find()函数和string::npos函数的介绍
string::find()函数和string::npos函数的介绍 我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不对他进 ...
- string find()函数、string::npos的含义、erase()函数
叮叮加粗样式~~ 一.string find()函数 第一种,algorithm头文件的find(). 使用方法:find(begin,end,value) 解释:第一个参数是容器或者数组的起始地址( ...
- C++ STL笔记二:string容器;string构造函数;string赋值函数;string拼接;string查找、替换;string比较;string单个字符存取;string插入、删除、截取
本质: string是C++风格的字符串,而string本质上是一个类. string和char*区别: char*是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个ch ...
- string find()函数、string::npos的含义、erase()函数
string::npos参数 -- npos 是一个常数,用来表示不存在的位置 例如,有两个字符串a.b,判断a字符串是否包含b字符串 //如果字符串不存在包含关系,那么返回值就一定是npos if( ...
- C++中string.find()函数与string::npos
先说说string::npos参数: npos 是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type 许多容器都提供这个东西.取值由实现决定,一般 ...
- 【STL】string详解(string类常用的操作函数、构造函数、赋值操作、子符串的拼接、查找和替换、比较、存取、插入和删除、获取)
目录 1. string容器 简介 2. string类常用的操作函数 3. 构造函数 4. 赋值操作 5. 字符串拼接 6. 字符串查找和替换 7. 字符串比较 8. 字符串存取 9. 字符串插入和 ...
- C++ 中 string earse 函数的使用
C++中string erase函数的使用(转载) erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)i ...
- stl string常用函数
原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...
最新文章
- Json格式转化为string格式
- boost::iterator的用法测试实例
- 【TensorFlow-windows】keras接口——利用tensorflow的方法加载数据
- mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
- 如何PHP给人生日祝福,祝福偶像生日的句子 祝好朋友生日快乐说说
- 【笔试面试题】腾讯2013实习生面试算法题及参考答案
- APP动态界面设计使用的利与弊
- 可视化报表Superser
- 学习ES6路线了解图
- MongoDB复制集同步慢问题分析
- Python 结巴分词(jieba)Tokenize和ChineseAnalyzer的使用及示例代码
- 大数据分析数据挖掘工具有哪些
- 学习笔记:贝塞尔曲线法
- 自动驾驶专业名词简写简写缩写
- 2021Vivo千镜杯
- 培育企业安全基因 永信至诚召开2016年企业安全人才能力提升解决方案发布会...
- asp.net夜话之九:验证控件
- 祝贺:美云智数进入云安全联盟,《2021零信任落地案例集》
- elasticsearch安装和配置,elasticsearch启动报错:can not run elasticsearch as root
- Java中怎么获取文件夹的名称_java获取文件夹下所有文件的名称
热门文章
- 方舟手游怎么看最新服务器机柜销售,方舟生存进化PVX服务器怎么玩 PVX服务器规则一览...
- ParameterDirection.ReturnValue例子
- webstorm 打开npm命令板
- Solidity学习过程:storage与memory
- 2012_p3 摆花 (flower.cpp/c/pas)
- Vant weapp怎么安装
- KOA框架编程18-多文件上传-③-el-upload插件上
- Jupyter Notebook主题皮肤安装设置
- HorizontalScrollView的使用
- 软件测试之“项目测试设计”