#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX_STRING 20
char *getFirstName() {
char firstName[MAX_STRING];
printf("Please enter your first name: ");
gets(firstName);
return (firstName);
}
char *getLastName() {
char lastName[MAX_STRING];
printf("Please enter your last name: ");
gets(lastName);
return (lastName);
}
char *getNickName() {
char nickName[MAX_STRING];
printf("Please enter your nick name: ");
gets(nickName);
return (nickName);
}
char *getCompleteName(const char *firstName,
const char *lastName,
const char *nickName) {
char *completeName;
sprintf(completeName, "%s \"%s\" %s", firstName, nickName, lastName);
return (completeName);
}
int main() {
char *firstName;
char *lastName;
char *nickName;
char *completeName;
firstName = getFirstName();
lastName = getLastName();
nickName = getNickName();
completeName = getCompleteName(firstName, lastName, nickName);
printf("Hello %s.\n", completeName);
return (EXIT_SUCCESS);
}
What is wrong with the code. It always print nickname in all the the three varaiables firstName
, lastName
and nickName
.
Output:
]
it must display the complete name. I think error is in the getCompleteName
function.