Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Welcome to All Test Answers

C++ program that asks for a password and then verifies that it meets the stated criteria

Password Verifier
Imagine you are developing a software package that requires users to enter their own
passwords. Your software requires that users’ passwords meet the following criteria:
• The password should be at least six characters long.
• The password should contain at least one uppercase and at least one lowercase
letter.
• The password should have at least one digit.
Write a C++ program that asks for a password and then verifies that it meets the stated criteria.
If it doesn’t, the program should display a message telling the user why.

Answer:



//  Password Verifier
#include <iostream>
#include <string>
#include <cctype>
using namespace std;

// Function prototype
bool validPassword(char []);

int main()
{
   // Constant for the array size
   const int SIZE = 80;
   
   // Array to hold a password
   char cstring[SIZE];

   // Get a password from the user.
   cout << "Enter a password: ";
   cin.getline(cstring, SIZE);
   
   // Tell the user whether the password
   // is valid or not.
   if (!validPassword(cstring))
      cout << "The password is not valid.\n";
   else
      cout << "The password is valid.\n";
   return 0;
}

//***********************************************
// Function validPassword                       *
// This function returns true if the password   *
// stored in str is valid. Otherwise it returns *
// false.                                       *
//***********************************************

bool validPassword(char str[])
{
   // The following flag variables will indicate
   // whether the password has an uppercase letter,
   // a lowercase letter, and a digit.
   bool hasUpper = false,
        hasLower = false, 
        hasDigit = false;

   // If the password is less than six characters
   // we know immediately that it is not valid,
   // so go ahead and return.
   if (strlen(str) < 6)
   {
      cout << "The password must be 6 or more "
           << "characters long.\n";
      return false;
   }
   
   // Test each character in the password.
   while (*str != 0)
   {
      if (isupper(*str))
         hasUpper = true;     // Uppercase
      else if (islower(*str))
         hasLower = true;     // Lowercase
      else if (isdigit(*str))
         hasDigit = true;     // Digit

      // Go to the next character.
      str++;
   }

   // If the password does not have an uppercase
   // character AND a lowercase character AND a
   // digit, it isn't valid.
   if (!hasUpper || !hasLower || !hasDigit)
   {
      cout << "The password must have:\n";
      cout << "\tat least one uppercase character,\n";
      cout << "\tat least one lowercase character, and\n";
      cout << "\tat least one numeric digit\n";
      return false;
   }
   
   // If we made it to this point, the password is valid.
   return true;
}




About

Leave a reply

Captcha Click on image to update the captcha .

error: Content is protected !!