Привет, я новичок ie C ученик, и это задание.
Задача состоит в том, чтобы написать программу, которая изменяет пароль пользователя и проверяет, содержит ли новый пароль хотя бы число, буква и один из этих знаков (@
, #
, $
, %
), длина которого должна быть от 6 до 20.
Я описал 3 переменные как counter1
, counter2
& counter3
, чтобы проверить, есть ли хотя бы знак, число и буква в данном пароле, и если один из них был 0, просканируйте другой пароль от пользователя. Это должно продолжаться до тех пор, пока введенный пароль не будет включать в себя все указанные выше термины. условия или нет, это часть программы, в которой, как я полагаю, проблема связана с
int counter1 = 0, counter2 = 0, counter3 = 0;
char mypassword[20] = "A1$B2C";
char password[20];
char newpassword[50];
int check = 0;
do {
printf("Please enter your current password: ");
scanf("%s", password);
} while (strcmp(mypassword, password) != 0);
printf("Please enter your new password: ");
scanf("%s", newpassword);
for (int i = 0; i < strlen(newpassword); i++) {
if (isalpha(newpassword[i]) != 0) {
counter3 += 1;
}
else if (isdigit(newpassword[i]) != 0) {
counter2 += 1;
}
else if (newpassword[i] == '@' || '#' || '$' || '%') {
counter1 += 1;
}
}
while (check == 0) {
while (counter1 == 0 || counter2 == 0 || counter3 == 0) {
printf("Please enter you new password: ");
scanf("%s", newpassword);
}
if (strlen(newpassword) < 6 || strlen(newpassword) > 20) {
printf("Please enter you new password: ");
scanf("%s", newpassword);
}
else
check += 1;
}