Voy a plantear bien el problema:
1º Introducir dos cadenas de teclado(programa principal).
2º Función que devuelva la longitud de la primera y segunda cadena.
3º Función que concatene ambas cadenas y devuelva como resultado la suma de ambas cadenas.
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char cad1[100], cad2[100], cad3[200];//cad3[200] porque es la suma de cad1[100]+cad2[100];
int long_total;
int concatenar(char[], char[], char[]);
printf("Introduce una cadena: "); printf("Introduce una cadena: ");
long_total=concatenar(cad1, cad2, cad3);
printf("La concatenación tiene un total de %d caracteres.\n", long_total
); }
int long_cad(char cad1[]){
int i;
i=0;
while(cad1[i] != '\0')
i++;
return(i);
}
int concatenar(char cad1[], char cad2[], char cad3[]){
int tamano;
int i, j;
int error=1;
tamano=long_cad(cad1) + long_cad(cad2);
if(tamano > sizeof(cad3)){
error=0;
printf("No hay espacio suficiente para la concatenacion.\n"); }
else{
i = 0;
while(cad1[i] != '\0'){
cad3[i]=cad1[i];
i++;
}
j=0;
while(cad2[j] != '\0'){
cad3[i]=cad2[j];
j++;
i++;
}
cad3[i+1]='\0';
}
return(error);
}
Resultado de la compilación:
Introduce una cadena: pepe
Introduce una cadena: ana
No hay espacio suficiente para la concatenacion.
La concatenación tiene un total de 0 caracteres.