关于stl string find 容易犯的一个错误

简介:

有时候经常会判断一个字符串a中是否有子字符串b,那么有人会调用 string::find这个函数  这个函数返回子字符串首次出现的位置,那么有人会这样写

 

复制代码
    string str1 = "";
    if(str1.find("aaaa") >= 0)
        cout<<""<<endl;
    else
        cout<<"没有"<<endl;

    system("pause");
    return 0;
复制代码

结果输出是错误的。而实际上必须写成这样

复制代码
    string str1 = "";
    if(str1.find("aaaa") != string::npos)
        cout<<""<<endl;
    else
        cout<<"没有"<<endl;
复制代码

经过调试发现 find的返回值是无符号整型,也就是说没有负数。>= 0 在任何时刻都成立的。

相关文章
|
3天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0
|
14天前
|
C++ 容器
STL—vector、string
STL—vector、string
|
18天前
|
算法 Linux C语言
【C++进阶(一)】STL大法以及string的使用
【C++进阶(一)】STL大法以及string的使用
|
19天前
|
存储 算法 C语言
c++的学习之路:9、STL简介与string(1)
c++的学习之路:9、STL简介与string(1)
22 0
|
29天前
|
存储 编译器 C++
【C++初阶】STL详解(二)string类的模拟实现
【C++初阶】STL详解(二)string类的模拟实现
53 1
|
29天前
|
存储 算法 编译器
【C++初阶】STL详解(一)string类
【C++初阶】STL详解(一)string类
31 0
|
1月前
|
存储 算法 C语言
【C++初阶】8. STL初阶 + String类
【C++初阶】8. STL初阶 + String类
54 1
|
1月前
|
C++
【C++STL基础入门】string类的基础使用
总之,`string`类是C++中用于操作字符串的重要工具,提供了丰富的方法来进行字符串操作、查找、替换等操作,简化了字符串处理的任务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
9 0
|
2月前
|
编译器 C++ 容器
【C++练级之路】【Lv.6】【STL】string类的模拟实现
【C++练级之路】【Lv.6】【STL】string类的模拟实现
|
3月前
|
存储 编译器 C++
C++:STL - string
C++:STL - string
59 1