//Andrew Alspaugh CS1A Chapter 10. P. 589. #7.
//
/****************************************************************************
Create Full Name
___________________________________________________________________________
This program displays a full name:
last, first middle
____________________________________________________________________________
//Input
const int SIZE = 16;
char first[SIZE];
char middle[SIZE];
char last[SIZE];
//Output
int sizeFULL;
****************************************************************************/
#include <iostream>
#include <cstring>
using namespace std;
void BuildFullName(const char* first, const char* middle, const char* last, char* fullName, int fullSize);
int main()
{
//DATA DICTIONARY
//Input
const int SIZE = 16;
char first[SIZE];
char middle[SIZE];
char last[SIZE];
//Output
int sizeFULL;
// INPUT
cin.getline(first, SIZE);
cin.getline(middle, SIZE);
cin.getline(last, SIZE);
// PROCESS
sizeFULL = strlen(first) + strlen(middle) + strlen(last) + 4;
char *Name = new char[sizeFULL];
BuildFullName(first, middle, last, Name, sizeFULL);
// OUTPUT
cout << Name << endl;
delete [] Name;
return 0;
}
void BuildFullName(const char* first, const char* middle, const char* last, char* fullName, int fullSize)
{
strcpy(fullName, last);
strcat(fullName, ", ");
strcat(fullName, first);
strcat(fullName, " ");
strcat(fullName, middle);
}
Ly9BbmRyZXcgQWxzcGF1Z2ggICAgICAgICAgQ1MxQSAgICAgICAgICAgICAgICAgQ2hhcHRlciAxMC4gUC4gNTg5LiAjNy4KLy8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQ3JlYXRlIEZ1bGwgTmFtZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVGhpcyBwcm9ncmFtIGRpc3BsYXlzIGEgZnVsbCBuYW1lOgpsYXN0LCBmaXJzdCBtaWRkbGUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoJCQkJCQkJCQkvL0lucHV0CiAgICBjb25zdCBpbnQgU0laRSA9IDE2OwoKICAgIGNoYXIgZmlyc3RbU0laRV07CiAgICBjaGFyIG1pZGRsZVtTSVpFXTsKICAgIGNoYXIgbGFzdFtTSVpFXTsKICAgIAoJCQkJCQkJCQkvL091dHB1dAoJaW50IHNpemVGVUxMOwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxjc3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBCdWlsZEZ1bGxOYW1lKGNvbnN0IGNoYXIqIGZpcnN0LCBjb25zdCBjaGFyKiBtaWRkbGUsIGNvbnN0IGNoYXIqIGxhc3QsIGNoYXIqIGZ1bGxOYW1lLCBpbnQgZnVsbFNpemUpOyAKCmludCBtYWluKCkKewovL0RBVEEgRElDVElPTkFSWQoJCQkJCQkJCQkvL0lucHV0CiAgICBjb25zdCBpbnQgU0laRSA9IDE2OwoKICAgIGNoYXIgZmlyc3RbU0laRV07CiAgICBjaGFyIG1pZGRsZVtTSVpFXTsKICAgIGNoYXIgbGFzdFtTSVpFXTsKICAgIAoJCQkJCQkJCQkvL091dHB1dAoJaW50IHNpemVGVUxMOwoJCi8vIElOUFVUCiAgICBjaW4uZ2V0bGluZShmaXJzdCwgU0laRSk7CiAgICBjaW4uZ2V0bGluZShtaWRkbGUsIFNJWkUpOwogICAgY2luLmdldGxpbmUobGFzdCwgU0laRSk7CgovLyBQUk9DRVNTCiAgICBzaXplRlVMTCA9IHN0cmxlbihmaXJzdCkgKyBzdHJsZW4obWlkZGxlKSArIHN0cmxlbihsYXN0KSArIDQ7CiAgICBjaGFyICpOYW1lID0gbmV3IGNoYXJbc2l6ZUZVTExdOwogICAgCiAgICBCdWlsZEZ1bGxOYW1lKGZpcnN0LCBtaWRkbGUsIGxhc3QsIE5hbWUsIHNpemVGVUxMKTsKCi8vIE9VVFBVVAogICAgY291dCA8PCBOYW1lIDw8IGVuZGw7CiAgICAKCWRlbGV0ZSBbXSBOYW1lOwoJCiAgICByZXR1cm4gMDsKfQoKdm9pZCBCdWlsZEZ1bGxOYW1lKGNvbnN0IGNoYXIqIGZpcnN0LCBjb25zdCBjaGFyKiBtaWRkbGUsIGNvbnN0IGNoYXIqIGxhc3QsIGNoYXIqIGZ1bGxOYW1lLCBpbnQgZnVsbFNpemUpCnsKICAgIHN0cmNweShmdWxsTmFtZSwgbGFzdCk7CiAgICBzdHJjYXQoZnVsbE5hbWUsICIsICIpOwogICAgc3RyY2F0KGZ1bGxOYW1lLCBmaXJzdCk7CiAgICBzdHJjYXQoZnVsbE5hbWUsICIgIik7CiAgICBzdHJjYXQoZnVsbE5hbWUsIG1pZGRsZSk7Cn0=