Я учусь C прямо сейчас.
Я работаю над программой, которая будет проверять ввод пользователя (допустимость пароля). Чтобы пароль считался подходящим и достаточно надежным, он должен иметь хотя бы один из списка следующих элементов:
- Прописная буква;
- знак '$' ;
- Буквенно-цифровой символ;
В моей программе я создал три целочисленные переменные, которые будут вести подсчет вышеперечисленных требований.
К сожалению, всякий раз, когда я вводю " «правильная» версия пароля, программа продолжает печатать, что пароль недопустим.
Пожалуйста, дайте мне подсказку, где я могу ошибаться.
//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.
int main()
{
char passwordInput[50];
int alphaNumericCount = 0;
int upperCharacterCount = 0;
int dollarCount = 0;
printf("Enter you password:\n");
scanf(" %s", passwordInput);
//int charactersAmount = strlen(tunaString);
for (int i = 0; i < 49; i++){
//tunaString[i]
if( isalpha(passwordInput[i]) ) {
alphaNumericCount++;
//continue;
}else if( isupper(passwordInput[i]) ) {
upperCharacterCount++;
//continue;
}else if( passwordInput[i] == '$' ) {
dollarCount++;
//continue;
}
}
if( (dollarCount == 0) || (upperCharacterCount == 0) || (alphaNumericCount == 0) ){
printf("Your entered password is bad. Work on it!\n");
}else{
printf("Your entered password is good!\n");
}
return 0;
}