Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  homework1
Language: C/C++
Code:
//cac170006 
#include <stdio.h>
#include "string.h"
const int SIZE = 21; //20 char name with null terminator

void name();
void password();
int main()
{
    //call function
    
    //problem 1
    name();
    
    //problem 2
    password();

    return 0;
}

void name(){
    puts("Please enter full name separated by spaces (First Middle Last)");
    //make char arrays and read in
    char first[SIZE];
    char mid[SIZE];
    char last[SIZE];
    scanf("%s%s%s", first, mid, last);
    
    //make fourth array
    char full[(SIZE*3+1)];//space for three names, plus two spaces, a comma, and null terminator = 20*3+3+1 =21*3+1
    
    //format name in fourth string
    strcpy(full, last); //full = last
    strcat(full, ", "); //add comma & space
    strcat(full, first); //add first
    strcat(full, " "); //add space
    strcat(full, mid); //add middle
    
    printf("%s",full); //print full name
}

void password(){
    puts("\nPlease enter a password");
    char pw[SIZE*2]; //anticipate input that's too long for password
    scanf("%s", pw);
    int upper=0, lower=0, digit=0, punct=0;
    //loop goes through each char and switches each boolean to true if the char is true for its condition
    //each condition will short circuit after the corresponding if statement executes once
    for(int i=0;pw[i]!='\0';i++)
    {//printf("%c", pw[i]);
        if(!upper && pw[i]>='A' && pw[i]<='Z') //upper case
            upper = 1;
        if(!lower && pw[i]>='a' && pw[i]<='z') //lower case
            lower = 1;
        if(!digit && isdigit(pw[i])) //digit
            digit = 1;
        if(!punct && ispunct(pw[i])) //punctuation
            punct = 1;
    }
    //output invalid messages or valid message
    //check length
    int len = 1;
    if(strlen(pw)>14 || strlen(pw)<6)
    {
        puts("Password is not between 6 and 14 characters.");
        len = 0;
    }
    if(!upper || !lower)
        puts("Password doesn't contain at least one upper and lower character");
    if(!digit)
        puts("Password doesn't contain at least one digit");
    if(!punct)
        puts("Password doesn't contain at least one punctuation");
    if(len && upper && lower && digit && punct) //if all conditions are met
        puts("Password is valid");
    
}
Comments: