cpp string find()无法按预期工作 - 返回大垃圾值

时间:2015-11-22 06:19:49

标签: c++ eclipse string find std

我试图使用find()在另一个字符串中查找子字符串的索引,但是如果子字符串不存在则获取垃圾值而不是std :: npos。

这是代码:

  

string output1 =" abcd&#34 ;;

     

cout<< output.find(" gf")<< ENDL;

这是输出:

  

18446744073709551615

可以预防这种行为吗?有没有另一种方法来找到子串?

(实际上我只需要找到如果包含子字符串)

谢谢

1 个答案:

答案 0 :(得分:2)

它返回的是你的字符串的npos的size_t,因为它找不到你的字符或文字。你可以这样做:

std::size_t found = str.find("findme");

if (found != std::string::npos)
    std:cout << found << std::endl;
else
    std::cout << "String not found" << std::endl // If not found