Write a program that reads a person’s name in the following format: first name, then middle name or initial, and then last name. The program then outputs the name in the following format: last name, first name. middle initial. For example the input Mary Average User should produce the output User, Mary A.Your program should work the same and place a full stop after the middle initial even if the input did not contain a full stop. Your program should allow for users who give no middle name or initial. In that case, the output of courses contains no middle name or initial. For example, the input Mary User should produce the output User, Mary Your program should also accept names in lowercase, uppercase or a mix of lowercase and uppercase, and display that in the correct format, e.g. if the input is mArY average USER should produce the output User, Mary A.
#include <iostream>
#include <string>
using namespace std;
void toLowerCase(char word[]);
int main(void){
char inputString[20];
char words[10][20];
int i,j=0,counter=0;
cout << "Enter the person's name in the following format: first name, then middle name or initial, and then last name:\n";
gets(inputString);
for(i=0;i<=(strlen(inputString));i++){
if(inputString[i]==' '||inputString[i]=='\0'){
words[counter][j]='\0';
counter++;
j=0;
}
else
{
words[counter][j]=inputString[i];
j++;
}
}
if(counter==3){
toLowerCase(words[2]);
toLowerCase(words[0]);
words[1][0]=toupper(words[1][0]);
printf("%s, %s %c.\n",words[2],words[0],words[1][0]);
}else if(counter==2){
toLowerCase(words[1]);
toLowerCase(words[0]);
printf("%s, %s\n",words[1],words[0]);
}else if(counter==1){
toLowerCase(words[0]);
printf("%s\n",words[0]);
}else{
printf("Wrong input data.\n\n");
}
system("pause");
return 0;
}
void toLowerCase(char word[]){
word[0]=toupper(word[0]);
for(int i=1; word[i]!='\0'; i++)
{
word[i]=tolower(word[i]);
}
}
Comments
Leave a comment