我在使用时遇到了一些对我没有多大意义的东西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)
也许您应该考虑在if语句中使用直接逻辑:
if( response.find(testString) == std::string::npos )
Run Code Online (Sandbox Code Playgroud)
这种逻辑表达可能会让你更少迷惑.如果find的返回值等于,std::string::npos那么在字符串中找不到testString变量中的response字符串.
编辑:我的逻辑以错误的方式回答.
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |