我一直在开发一个检查密码是否合格的程序。
为了使密码符合条件,它至少需要: 一个大写字母;一个号码;和一个美元符号。
我的程序会检查要求并确定密码是否可以使用。
我现在遇到的障碍是我试图让程序运行到:
- 用户输入“quit”退出程序;
- 或者,如果用户键入正确形式的所需密码。
为了运行这样一个重复的过程,我决定使用 do-while 循环。为了让程序确定是时候爆发了,我使用了以下命令:
do {...} while (passwordInput != "quit" || passwordClearance != 1);
不幸的是,即使密码正确,我的程序仍然运行。
请给我一个线索,我该如何摆脱重复的过程。
// challenge:
// build a program that checks when user enters a password for an uppercase letter, a number, and a dollar sign.
// if it does output that password is good to go.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char passwordInput[50];
int digitCount = 0;
int upperCharacterCount = 0;
int dollarCount = 0;
int passwordClearance = 0;
do {
printf("Enter you password:\n");
scanf(" %s", passwordInput);
for (int i = 0; i < strlen(passwordInput); i++) {
if (isdigit(passwordInput[i])) {
digitCount++;
//continue;
} else
if (isupper(passwordInput[i])) {
upperCharacterCount++;
//continue;
} else
if (passwordInput[i] == '$') {
dollarCount++;
//continue;
}
}
if ((dollarCount == 0) || (upperCharacterCount == 0) || (digitCount == 0)) {
printf("Your entered password does not contain required parameters. Work on it!\n");
} else {
printf("Your entered password is good to go!\n");
passwordClearance = 1;
}
} while (passwordInput != "quit" || passwordClearance != 1);
return 0;
}