繁体   English   中英

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

[英]cpp string find() doesnt work as expected - returns big junk values

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

这是代码:

字符串output1 =“ abcd”;

cout << output.find(“ gf”)<< endl;

这是输出:

18446744073709551615

可以防止这种行为吗? 还有另一种查找子字符串的方法吗?

(实际上,我只需要查找是否包含子字符串)

谢谢

它返回的是字符串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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM