关于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标准库 《string原理与实战分析》
C++ STL标准库 《string原理与实战分析》
59 0
|
26天前
|
存储 算法 程序员
【STL】string
【STL】string
|
3月前
|
安全 算法 C语言
【C++进阶】深入STL之string:掌握高效字符串处理的关键
【C++进阶】深入STL之string:掌握高效字符串处理的关键
38 1
【C++进阶】深入STL之string:掌握高效字符串处理的关键
|
3月前
|
编译器 C++
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
33 1
|
3月前
|
程序员 C++
C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现
C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现
29 1
|
3月前
|
C语言 C++
C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类
C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类
27 0
|
3月前
|
算法 Linux C语言
7.学习STL和string类:版本、组件、构造、操作及应用
7.学习STL和string类:版本、组件、构造、操作及应用
|
3月前
|
编译器 C语言 C++
【C++/STL】:string类底层的模拟实现
【C++/STL】:string类底层的模拟实现
28 0
|
3月前
|
算法 C++ 容器
【C++/STL】:string类的基本使用
【C++/STL】:string类的基本使用
21 0
|
3月前
|
C++ 容器 存储
【C++语言】想学STL,先细细拿捏string类,万字详解string类 (内附精美思维导图)
【C++语言】想学STL,先细细拿捏string类,万字详解string类 (内附精美思维导图)