首页 > 其他 > 详细

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

时间:2015-12-23 14:24:49      阅读:194      评论:0      收藏:0      [点我收藏+]

有时候经常会判断一个字符串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 在任何时刻都成立的。

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

原文:http://www.cnblogs.com/zhangdongsheng/p/5069705.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!