¿Qué llevas hecho?
No te vamos a escribir todo desde cero, te resolveremos dudas puntuales o te lo explicaremos hasta que lo entiendas (a partir de lo que veamos en donde fallas).
Vale.
Yo tengo una cabecera que se llama ayoub.h, luego tengo main.c y implementacion.c
en la cabecera tengo este código:#ifndef _AYOUB_H
#define _AYOUB_H
//
#include<stdio.h>
#include <string.h>
//#include <cstring.h>
#define MAX 50
void uniones(char *a, char *b, char *c);
#endif
El fichero main.c tengo esto:#include<stdio.h>
//#include <cstdlib>
#include"ayoub.h"
#include <string.h>
int main(){
printf("Introduzca tres palabras");
char a [15]; //el MAX me da error
char b [15];
char c [15];
printf("\nPalabra A");
gets(a); // solo lee 1 palabra
printf("\nPalabra A");
gets(b); // solo lee 1 palabra
printf("\nPalabra A");
gets(c); // solo lee 1 palabra
printf("Nombre de palabra A ingresado es: ");
puts(a);
printf("Nombre de palabra B ingresado es: ");
puts(b);
printf("Nombre de palabra C ingresado es: ");
puts(c);
char cadena_union = uniones( a, b, c);
puts(cadena_union);
// system("PAUSE");
return 0;
}
Aquí se supone que debo rellenar las 3 cadena y devolver el resultado a la función de la cabecera.El el fichero de implementacion.h tengo esto:#include"ayoub.h"
#include<stdio.h>
#include<string.h>
using namespace std;
void uniones(){
int longitud1, longitud2, longitud3 = 0;
int suma_longitudes = 0;
longitud1= strlen(a); //copio cuantos el numero de caracteres a longitud1
longitud2= strlen(b); //copio cuantos el numero de caracteres a longitud2
longitud3= strlen(c); //copio cuantos el numero de caracteres a longitud3
printf("\nLa cadena A tiene %d caracteres", longitud1); //aqui simplemente visualizo cuantos son
printf("\nLa cadena B tiene %d caracteres", longitud2);
printf("\nLa cadena C tiene %d caracteres", longitud3);
suma_longitudes=longitud1+longitud2+longitud3; //sumo las longitudes para asignar espacio para la string cadena
char *cadena = (char *)malloc((suma_longitudes + 1) *sizeof(char));//asigno el espacio acorde con lo que he introducido en las 3 cadenas de palabras
printf("\nCadena: ");
//scanf("%s", cadena);
strcpy(cadena, a);//esto no sé si esta bien, pero lo que intento hacer es copiar el contenido de las 3 en una cadena
strcpy(cadena, b);
strcpy(cadena, c);
printf("\n El resultado es %s", cadena);
}
Aquí lo que intento hacer es reservar espacio en la memoria con malloc y copiar el contenido de las 3 cadenas (a,b,c) en una dejando espacio entre cada contenido.
Saludos