• Viernes 8 de Noviembre de 2024, 22:53

Autor Tema:  funciones y cadenas  (Leído 1171 veces)

crocop

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
funciones y cadenas
« en: Viernes 10 de Octubre de 2008, 04:43 »
0
ola tengo un problema con funciones tengo que hacer un programa con funciones que intercale dos cadenas en una tercera cadena  ejemplo : cadena1=hola, cadena2=chao; cadena3=hcoaldaena; esto es lo que tengo.
creo que el problema es con las cadenas que ingreso, en un tema de variables locales y generales, eso gracias espero aportes saludos.
Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<string.h>
  5. #include<ctype.h>
  6. void llenar_cadena(char cadena[80]);
  7. void mostrar_cadena(char cadena[80]);
  8. void main ()
  9. {
  10. char c[80],s[80],f[80];
  11.  
  12. clrscr();
  13. llenar_cadena(c);
  14. llenar_cadena(s);
  15. mostrar_cadena(c,s,f);
  16. getch();
  17. }
  18. void llenar_cadena(char cadena[80])
  19. {
  20. puts("ingrese cadena");
  21. gets(cadena);
  22. }
  23. void mostrar_cadena(char cadena[80])
  24. {
  25. int i;
  26.  
  27. for(i=0;i<=strlen[c]+strlen[s];i++){
  28. f[i]=c[i];
  29. f[i+1]=s[i]; }
  30. printf("la intercalacion es %sn",f);
  31. }
  32.  

Iganguli

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: mx
    • Ver Perfil
Re: funciones y cadenas
« Respuesta #1 en: Viernes 10 de Octubre de 2008, 16:24 »
0
tu declaras
Citar
void mostrar_cadena(char cadena[80]);
y en el main mandas a llamar
Citar
mostrar_cadena(c,s,f);
entonces en la declaracion le tienes que pasar 3 parametros para que pueda correr en el main
despues dentro de mostrar cadena
tienes
Citar
for(i=0;i<=strlen[c]+strlen;i++)
debes cambiar a strlen(c) para que funcione, cuando declares a mostrar_cadena hazlo asi
void mostrar_cadena(char c[80],char s[80], char f[80]);
para que jale y no cambies el nombre de las variables que ya tienes dentro de la funcion, por ultimo declara otra variable dentro de la funcion mostrar para que maneje el indice de f por que si lo dejas en i va a sobre escribir en la posicion de i + 1 cuando el ciclo itere hazlo algo para que te quede mas o menos asi

for( i=0; i <= strlen(c)+strlen(s); i++, j +=2 ){
f[j]=c;
f[j+1]=s;
 }