我的代码中有一个错误。请告诉我

时间:2016-11-03 06:50:45

标签: c++

我试图搜索' ..'在表示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 );
    }
}

1 个答案:

答案 0 :(得分:2)

这不是针对0而是针对std::string::npos进行测试的问题。查看find上的文档:

bool found = a.find('..') != std::string::npos;