下面的结果是什么?
- #include <iostream>
- #include <string>
- using namespace std;
- int main()
- {
- string s = "abc";
- if(s.find("x"))
- {
- cout << "yes" << endl;
- }
- else
- {
- cout << "no" << endl;
- }
- return 0;
- }
结果是:yes,因为s.find("x")的结果是(U32)(-1), 是一个很大的数,字符串查找时需要与s.npos进行比较。
if语句改为下面的就可以了:
if (s.npos != s.find("x"))