我试图使用find()在另一个字符串中查找子字符串的索引,但是如果子字符串不存在则获取垃圾值而不是std :: npos。
这是代码:
string output1 =" abcd&#34 ;;
cout<< output.find(" gf")<< ENDL;
这是输出:
18446744073709551615
可以预防这种行为吗?有没有另一种方法来找到子串?
(实际上我只需要找到如果包含子字符串)
谢谢
答案 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