Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
我是C语言的初学者。
我有一个检查密码强度的程序。下面是复制该问题的完整程序的工作代码段。
该程序的预期输出为:
我得到的输出是:
我以为问题出在FOR循环中,该循环旨在检查每个字符是否为数字,但有错误,并且不检查每个字符。
为了检查该结论是否正确,我将变量
接下来,我尝试将变量
即使经过上述检查,我仍然觉得FOR循环有问题。但是,我无法掌握发生了什么问题。
想改善这个问题吗? 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++)