Combine the earlier checks into a single numeric score between 0 and 100.
You start with:
string password = "Secret!99";
Build:
Length: 9 Score: 100
Rules:
- Start with
score = 0. - If the length is at least 8, add 25.
- If the password contains an uppercase letter, add 20.
- If it contains a lowercase letter, add 20.
- If it contains a digit, add 20.
- If it contains a symbol (not a letter and not a digit), add 15.
- Print
"Length: "followed by the length, then print"Score: "followed by the score.
Try other passwords: with abc123 the output is
Length: 6 Score: 40
Use the same
char.IsUpper, char.IsLower, char.IsDigit, char.IsLetterOrDigit checks, then accumulate into int score.
string password = "Secret!99";
int length = password.Length;
bool hasUpper = false;
bool hasLower = false;
bool hasDigit = false;
bool hasSymbol = false;
foreach (char c in password) {
if (char.IsUpper(c)) {
hasUpper = true;
}
if (char.IsLower(c)) {
hasLower = true;
}
if (char.IsDigit(c)) {
hasDigit = true;
}
if (!char.IsLetterOrDigit(c)) {
hasSymbol = true;
}
}
int score = 0;
if (length >= 8) {
score += 25;
}
if (hasUpper) {
score += 20;
}
if (hasLower) {
score += 20;
}
if (hasDigit) {
score += 20;
}
if (hasSymbol) {
score += 15;
}
Console.WriteLine("Length: " + length);
Console.WriteLine("Score: " + score);
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
