/*
 * 10-nomapel-b.c
 *
 * Escriba un programa que pida por separado el primer
 * nombre, el segundo nombre y el apellido, y los
 * muestre en pantalla juntos.
 * En esta variante se concatenan las tres cadenas
 * a una variable auxiliar antes de realizar la
 * impresión en la salida estándar.
 */

#include <stdio.h>
#include <string.h>

#define MAX_NOMBRE		50
#define MAX_APELLIDO	60

int
main(void)
{
	char nombre1[MAX_NOMBRE+1];
	char nombre2[MAX_NOMBRE+1];
	char apellido[MAX_APELLIDO+1];
	char nomapel[2*MAX_NOMBRE+MAX_APELLIDO+3];

	printf("Ingrese su primer nombre: ");
	fgets(nombre1, MAX_NOMBRE, stdin);
	nombre1[strlen(nombre1)-1]= '\0';
	/* Note que en cada caso que uso fgets() debo eliminar el
	 * cambio de linea que es el último carácter ingresado, y 
	 * lo hago sustituyendo el último carácter por un 
	 * carácter '\0'
	 */

	printf("Ingrese su segundo nombre: ");
	fgets(nombre2, MAX_NOMBRE, stdin);
	nombre2[strlen(nombre2)-1]= '\0';

	printf("Ingrese su apellido: ");
	fgets(apellido, MAX_APELLIDO, stdin);
	apellido[strlen(apellido)-1]= '\0';

	strcpy(nomapel, nombre1);
	strcat(nomapel, " ");
	strcat(nomapel, nombre2);
	strcat(nomapel, " ");
	strcat(nomapel, apellido);
	
	printf("%s\n", nomapel);

	return 0;
}

/* EOF 10-nomapel-b.c */
