gpt4 book ai didi

c++ std::string.find 在 boolean 表达式中返回意外结果

转载 作者:行者123 更新时间:2023-11-28 05:26:48 25 4
gpt4 key购买 nike

<分区>

我正在尝试在代表 POSIX 系统文件路径的字符串中搜索是否存在“..”。我正在使用 std::string.find(".."),它似乎找到了正确的索引,但在 boolean 表达式中没有正确求值。

例如:

#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 );
}
}

输出:

$ g++ test.cpp -o test
$ ./test
TEST1 FAILED: -1 >= 0!
$

知道为什么 a.find( "..") 在 boolean 表达式中的计算结果不为 -1 吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com