Я пытался создать проверку пароля с помощью следующего кода ниже.
bool alpha = false;
bool digit = false;
bool nogo = true;
char pass[99];
int len;
len = strlen(pass);
int i, x;
while(nogo){
printf("Password checker 1.1\n");
printf("Please enter a password you would like to test.\n");
scanf("%s\n", pass);
printf("%d\n", len);
if(len<8){
printf("Your password is too short. Please re-enter a new password.");
nogo = true;
}
if(len>20){
printf("Your password is too long. Please re-enter a new password.");
nogo = true;
}
else{
for (int i = 0, len = strlen(pass); i < len; i++){
if(isalpha(pass[i]) == true){
alpha = true;
}
}
for (int x = 0, len = strlen(pass); x < len; i++){
if(isdigit(pass[x]) == true){
digit = true;
}
}
}
if(alpha == true && digit ==true ){
printf("Your password is good.");
nogo = false;
return 0;
}
}
Все было построено без ошибок. Однако код после первого ввода пароля, похоже, не работал должным образом. Я должен был ввести ввод дважды, он запросил другой ввод пароля. Также он отказался принять второй ввод от пользователя. Вот что показано на моей консоли.
Password checker 1.1
Please enter a password you would like to test.
asdasdada
dsadsadadasdaewqkjlks
6
Your password is too short. Please re-enter a new password.
"asdasdada
dsadsadadasdaewqkjlks "----> они - мои входные данные, а '6' после моих входных данных - мои strlen.
Могу я спросить, в чем проблема с моим кодом? Это был мой первый раз, когда я использовал bool, поэтому могу я спросить, правильно ли я использовал код?