C++中string.find()函数与string::npos 理解
来源:互联网 发布:淘宝客服发的红包 编辑:程序博客网 时间:2024/09/21 06:33
先看一种很多人日常使用错误方式
string str("hello world");
int pos=str.find_first_of("h");
if(pos!=string::npos) // 或者 if(pos!=-1)
{..
....// 查找到了
} //不存在是find返回-1
这样的使用,结果是正常的,但并没有很好的理解string find函数的返回类型和string::npos真正的值。
string::find这类型的函数,返回值类型都是string::size_type, 而string::size_type其实是一种unsigned int类型。
find的结果记录匹配的位置,或者返回一个名为string::npos 的特殊值,说明查找没有匹配。
string 类将 npos 定义为保证大于任何有效下标的值。string::npos的值是无符号型类型的,其值是(unsignedint)(-1),也就是4294967295
所以正确的用法应该是:
string str("hello world");
string::size pos=str.find_first_of("h");
if(pos!=string::npos)
{..
....// 查找到了
} //不存在是find返回string::npos
由上面可以看出,string::npos的值是-1并不准确,string::npos的值是无符号型类型的,其值是(unsignedint)(-1),也就是4294967295,但是和int 类型的-1比较结果是true,所以使用的时候,认为其值是int类型的-1不会影响结果.
- C++中string.find()函数与string::npos 理解
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- C++中string.find()函数与string::npos
- string::find 与 string::npos
- C++: string 中find函数的用法以及string::npos的含义
- string::find string::npos
- C++--string--find_first_of() 和 find_last_of(),find()与npos
- find 函数和string :: npos 的用法
- string的find函数返回值和string::npos 的理解
- C++中string::find()函数和string::npos函数的使用
- C++函数返回指针或引用实例,string.find()与string::npos实例
- string中的find函数和string::npos的使用
- Cpp--string中npos
- chrome浏览器插件,让您浏览器页面游小鱼儿
- HDU 6214 Smallest Minimum Cut
- 重装系统
- 在JavaWeb中使用wangEditor3简单案例
- idea字体细小、抗锯齿等问题
- C++中string.find()函数与string::npos 理解
- php trait学习笔记
- BZOJ 3629-聪明的燕姿 【数学杂题】
- 第三周——项目三—求集合并集
- 自定义控件---添加子控件错误
- Drupal8 minimal Mode add comment form
- Java实训课7
- 操作系统---进程的死锁
- include动作与include指令的区别