hola tengo un problema con este programa ; el programa intercala cadenas por ejemplo:
cadena1=ola , cadena2=chao , cadena3=oclhaao .el problema es cuando las cadenas no que tienen el mismo numero de caracteres, el problema esta cuando la primera cadena es menor en numero de caracteres que la segunda cadena. solo me devuelve el valor hasta su ultimo valor
por ejemplo: cadena1= a , cadena2=bye , cadena3= ab
no asi cuando es mayor la primera que la segunda ejemplo:
cadena1= bye , cadena2=a , cadena3= baye
aqui esta el programa, agradesco aportes
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void llenar_cadena(char cadena[80]);
void mostrar_cadena(char cadena1[80],char cadena2[80],char cadena3[80]);
void main ()
{
char c[80]={0},s[80]={0},f[80]={0};
clrscr();
llenar_cadena(c);
llenar_cadena(s);
mostrar_cadena(c,s,f);
getch();
}
void llenar_cadena(char cadena[80])
{
puts("ingrese cadena");
gets(cadena);
}
void mostrar_cadena(char cadena1[80],char cadena2[80],char cadena3[80])
{
int i=0,j,n,subs=1,subc=0;
while(i<=(strlen(cadena1)+strlen(cadena2))){
//cadena2[subc]=cadena[i];
if(cadena1[i]==' '){
while(i<=strlen(cadena2)){
cadena3[subs]=cadena2[i];
subs++;
i++; }
printf("la intercalacion es %sn",cadena3);
break;}
cadena3[subc]=cadena1[i];
//cadena2[subs]=cadena1[i];
if(cadena2[i]==' '){
while(i<=strlen(cadena1)){
cadena3[subc]=cadena1[i];
subc++;
i++; }
printf("la intercalacion es %sn",cadena3);
break;}
cadena3[subs]=cadena2[i];
subc+=2;
subs+=2;
i+=1;
}
}