首页 > 代码库 > c++ string.find()函数的陷阱
c++ string.find()函数的陷阱
string.find(char *)查找字符串中是否包含子串
找到:返回第一个索引
没有找到:返回一个很大的随机数字而不是返回负数(这是个坑)
所以不能这么写if (string.find(str) > 0)
必须这样写if (string.find(str)!= npos)
string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");
string flag;
string::size_type position;
//find 函数 返回jk 在s 中的下标位置
position = s.find("jk");
if (position != s.npos) //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,
{
cout << "position is : " << position << endl;
}
else
{
cout << "Not found the flag" + flag;
}
c++ string.find()函数的陷阱
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。