我试图搜索' ..'在表示POSIX系统上的文件路径的字符串中。我使用std :: string.find(" .."),它似乎找到了正确的索引,但是在布尔表达式中没有正确评估。请给出建议我如何完成这个?
#include <string>
#include <stdio.h>
int main( int argc, char *argv[] ) {
std::string a = "abcd";
int apos = a.find( ".." );
bool test1 = a.find( ".." ) >= 0;
bool test2 = apos >= 0;
if ( test1 ) {
printf( "TEST1 FAILED: %ld >= 0!\n", a.find( ".." ) );
}
if ( test2 ) {
printf( "TEST2 FAILED %d >= 0!\n", apos );
}
}
答案 0 :(得分:2)
这不是针对0而是针对std::string::npos
进行测试的问题。查看find
上的文档:
bool found = a.find('..') != std::string::npos;