#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.
 
     
     
     
     
     
    