Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
我是C语言的初学者。

我有一个检查密码强度的程序。下面是复制该问题的完整程序的工作代码段。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
    char password [25] = "qwerty1234";
    int counter;
    int numberBool = 0;

    for (counter = 0; counter > 25; counter++)
    {
        if(isdigit(password[counter]))
        {
            numberBool = 1;
        }
    }

    if(numberBool==1)
    {
        printf("You're good to go! \n");
    }
    else
    {
        printf("You're password is not secure \n");
    }

    return 0;
}


该程序的预期输出为:"You're good to go!"

我得到的输出是:"You're password is not secure"

我以为问题出在FOR循环中,该循环旨在检查每个字符是否为数字,但有错误,并且不检查每个字符。

为了检查该结论是否正确,我将变量password从原始1234qwerty切换到了qwerty1234。输出相同。

接下来,我尝试将变量password更改为1234。仍然是相同的输出。

即使经过上述检查,我仍然觉得FOR循环有问题。但是,我无法掌握发生了什么问题。

最佳答案

似乎您的for循环for (counter = 0; counter > 25; counter++)从未运行过,因为您的计数器从0开始,但是您的循环条件是counter>25。只需将其更改为for (counter = 0; counter < 25; counter++)

10-08 05:38
查看更多