Strong password (String problem) in C++

In this tutorial, we will solve the strong password problem in C++ which will have certain mentioned constraints. Let us define our constraints then we will solve the problem.

  • Its length should be at least 6.
  • Must contain at least one digit.
  • There should be at least one lowercase English character.
  • It is going to contain at least one uppercase character.
  • It should contain at least one special character. The special characters can be: !@#$%^&*()-+

Now we will be given a string of a particular length and we will have to find how many more characters are required to make the password strong.

To solve this problem we have to use multiple if-else conditions. In each condition, we have to mention the required condition to get the answer.

For example:

If the password is Codespeedy.

Then it is easy to note that the length of the password is greater than 6 but it doesn’t contain any special character. Neither it contains any digit. So the minimum character required to make it a strong password will be 2. Let move to our coding part in which we will mention different condition to solve this problem.

Program to Strong password problem

CPP source code:

// Program to solve strong password problem
#include<bits/stdc++.h>
using namespace std;

int minimumNumber(int n, string password) {
    // Returning the minimum number of characters 
  // to make the password strong
    int a=0,b=0,c=0,d=0;
    for(int i=0;i<n;i++)
    {
        if(password[i]=='!' || password[i]=='@' ||password[i]=='#'||
        password[i]=='$' || password[i]=='%' || password[i]=='^' ||
        password[i]=='&' || password[i]=='*' || password[i]=='(' ||
        password[i]==')' || password[i]=='-' || password[i]=='+')
        {
            a=1;
        }
        else if(password[i]-64>0 && password[i]-64<=26)
        {
            b=1;
        }
        else if(password[i]-96>0 && password[i]-96<=26)
        {
            c=1;
        }
        else if(password[i]-48>=0 && password[i]-48<=9)
        {
            d=1;
        }
    }
    int sum=a+b+c+d;
    if(n<=3)
    {
        return (6-n);
    }
    else if((n==4 && sum==1)|| (n==5 and sum ==1))
    {
        return 3;
    }
    else if((n==4 && sum==2)|| (n==5 and sum ==2))
    {
        return 2;
    }
    else if((n==4 && sum==3)||(n==4 && sum==4))
    {
        return 2;
    }
    else if((n==5 && sum==3) || (n==5 && sum==4))
    {
        return 1;
    }
    else if(n>=6 && sum==1)
    {
        return 3;
    }
    else if(n>=6 && sum==2)
    {
        return 2;
    }
    else if(n>=6 && sum==3)
    {
        return 1;
    }
    else{
        return 0;
    }
}
// Driver Code
int main()
{
  int n;
  cout<<"Enter the length of password: ";
  cin>>n;
  string password;
  cout<<"\nEnter the password: ";
  cin>>password;
  cout<<"\nMinimum character required to make it a strong password is "
  <<minimumNumber(n,password);
  return 0;
}

Input/Output:

Enter the length of password: 10

Enter the password: Codespeedy

Minimum character required to make it a strong password is 2

You may also learn:

Do not forget to comment if you find anything wrong in the post or you want to share some information regarding the same.

Leave a Reply

Your email address will not be published. Required fields are marked *