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静态成员常量的使用相关推荐

  1. C++中string::find()函数和string::npos函数的使用

    1. string::find()函数和string::npos函数的介绍 我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不 ...

  2. string::find()函数和string::npos函数的介绍

    string::find()函数和string::npos函数的介绍 我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不对他进 ...

  3. string find()函数、string::npos的含义、erase()函数

    叮叮加粗样式~~ 一.string find()函数 第一种,algorithm头文件的find(). 使用方法:find(begin,end,value) 解释:第一个参数是容器或者数组的起始地址( ...

  4. C++ STL笔记二:string容器;string构造函数;string赋值函数;string拼接;string查找、替换;string比较;string单个字符存取;string插入、删除、截取

    本质: string是C++风格的字符串,而string本质上是一个类. string和char*区别: char*是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个ch ...

  5. string find()函数、string::npos的含义、erase()函数

    string::npos参数 -- npos 是一个常数,用来表示不存在的位置 例如,有两个字符串a.b,判断a字符串是否包含b字符串 //如果字符串不存在包含关系,那么返回值就一定是npos if( ...

  6. C++中string.find()函数与string::npos

    先说说string::npos参数:  npos 是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type 许多容器都提供这个东西.取值由实现决定,一般 ...

  7. 【STL】string详解(string类常用的操作函数、构造函数、赋值操作、子符串的拼接、查找和替换、比较、存取、插入和删除、获取)

    目录 1. string容器 简介 2. string类常用的操作函数 3. 构造函数 4. 赋值操作 5. 字符串拼接 6. 字符串查找和替换 7. 字符串比较 8. 字符串存取 9. 字符串插入和 ...

  8. C++ 中 string earse 函数的使用

    C++中string erase函数的使用(转载) erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)i ...

  9. stl string常用函数

    原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...

最新文章

  1. Json格式转化为string格式
  2. boost::iterator的用法测试实例
  3. 【TensorFlow-windows】keras接口——利用tensorflow的方法加载数据
  4. mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
  5. 如何PHP给人生日祝福,祝福偶像生日的句子 祝好朋友生日快乐说说
  6. 【笔试面试题】腾讯2013实习生面试算法题及参考答案
  7. APP动态界面设计使用的利与弊
  8. 可视化报表Superser
  9. 学习ES6路线了解图
  10. MongoDB复制集同步慢问题分析
  11. Python 结巴分词(jieba)Tokenize和ChineseAnalyzer的使用及示例代码
  12. 大数据分析数据挖掘工具有哪些
  13. 学习笔记:贝塞尔曲线法
  14. 自动驾驶专业名词简写简写缩写
  15. 2021Vivo千镜杯
  16. 培育企业安全基因 永信至诚召开2016年企业安全人才能力提升解决方案发布会...
  17. asp.net夜话之九:验证控件
  18. 祝贺:美云智数进入云安全联盟,《2021零信任落地案例集》
  19. elasticsearch安装和配置,elasticsearch启动报错:can not run elasticsearch as root
  20. Java中怎么获取文件夹的名称_java获取文件夹下所有文件的名称

热门文章

  1. 方舟手游怎么看最新服务器机柜销售,方舟生存进化PVX服务器怎么玩 PVX服务器规则一览...
  2. ParameterDirection.ReturnValue例子
  3. webstorm 打开npm命令板
  4. Solidity学习过程:storage与memory
  5. 2012_p3 摆花 (flower.cpp/c/pas)
  6. Vant weapp怎么安装
  7. KOA框架编程18-多文件上传-③-el-upload插件上
  8. Jupyter Notebook主题皮肤安装设置
  9. HorizontalScrollView的使用
  10. 软件测试之“项目测试设计”