std :: string :: find()不使用std :: string作为参数

bla*_*st7 -1 c++ stdstring

我在使用时遇到了一些对我没有多大意义的东西std::string::find()我希望这里的某个人能够发现我的错误:

std::string testString = "PFAIL";
std::string response = "PFAIL\n";

if( response.find(testString) != std::string::npos )
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

此代码永远不会//do something因为某些原因而发表评论.有任何想法吗?

编辑:我的意思是它永远不会遇到//do something代码块,它应该如果我用以下方式表达它会这样做:

if( response.find( testString.c_str() ) != std::string::npos )
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

nio*_*nio 5

也许您应该考虑在if语句中使用直接逻辑:

if( response.find(testString) == std::string::npos )
Run Code Online (Sandbox Code Playgroud)

这种逻辑表达可能会让你更少迷惑.如果find的返回值等于,std::string::npos那么在字符串中找不到testString变量中的response字符串.

编辑:我的逻辑以错误的方式回答.