我试图让 boolean found_word 在找到单词/字符时返回 true,如果没有找到则返回 false,但无论我在文本中写什么,它总是返回 true。循环本身有效,已经尝试过了。包括 IOStream 和字符串。
while(timestorun){
found_word = text.find("khgdawjugfdjhawbdjkhsadgawkdsa");
if(found_word){
cout << "FOUND!!!" << endl;
}
else if(!found_word){
cout << "Found problem!!!!!"<< endl;
}
timestorun--;
}
有什么建议吗?
最佳答案
您应该与 npos
进行比较。 find
不返回 boolean 值。
found_word = text.find("khgdawjugfdjhawbdjkhsadgawkdsa") != std::string::npos;
0
,即 false
,仅当在索引 0
处找到子字符串时才会返回。
此外,您的第二个条件是多余的 - 如果 found_word
为 false
,我个人保证 !found_word
将为 true
.
关于c++ - String.find 总是返回 true (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13183784/