Я работал над программой, которая проверит пригодность пароля.
Чтобы пароль был приемлемым, он должен иметь как минимум: одну заглавную букву; один номер; и один знак доллара.
Моя программа выполняет проверку требований и определяет, подходит ли пароль к go или нет.
Барьер, который я сейчас имею, состоит в том, что Я пытался запустить программу до тех пор, пока:
- Пользователь не выйдет из программы, набрав «quit»;
- Или, если пользователь введет правильную форму требуемого пароля.
Чтобы запустить такой повторяющийся процесс, я решил использовать do-while l oop. Чтобы программа определила, что пора начинать работу, я использовал следующую команду:
do {...} while (passwordInput != "quit" || passwordClearance != 1);
К сожалению, моя программа по-прежнему работает , даже если пароль был верным.
Пожалуйста, дайте мне подсказку, как мне выйти из повторяющегося процесса, когда это хорошо для go.
// 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;
}