C 仅当返回 false 时才在循环中调用函数

问题描述 投票:0回答:1

我尝试在 for 循环中调用函数,但前提是它返回 false。该函数有时返回 true,有时返回 false。怎么可能实现呢?请帮我。谢谢你!

for (unsigned long long int i = data->start; i < data->end; i++) {
    sprintf(password, "%09llu", i);  
    if (is_valid_password(password)) {
        data->count++;
        fprintf(file, "%s\n", password);  
    }
}

我希望有一个好的解决方案,但我不介意它是否有点奇怪。我需要过滤生成的数字,例如 10101010 或 1234567890。如果该数字没有明显的模式,它将被视为有效,因此 funktion 返回 false,如果有模式,它将返回 true。我只想在有好的密码的情况下调用函数

c function loops function-call
1个回答
0
投票

如果我理解正确的话,那么你所需要的就是“!”之前

is_valid_password(password)

“!”表示“不是”并反转布尔结果。

所以,这应该有效:

for (unsigned long long int i = data->start; i < data->end; i++) {
    sprintf(password, "%09llu", i);  
    if (!(is_valid_password(password))) {
        data->count++;
        fprintf(file, "%s\n", password);  
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.