Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/07/2010, 12:36
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: concatenar varias cadenas

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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.      
  6. int main(){
  7.          char cad1[100], cad2[100], cad3[200];//cad3[200] porque es la suma de cad1[100]+cad2[100];
  8.          int long_total;
  9.          int concatenar(char[], char[], char[]);
  10.  
  11.          printf("Introduce una cadena: ");
  12.          scanf("%99s", cad1);
  13.          printf("Introduce una cadena: ");
  14.          scanf("%99s", cad2);
  15.          
  16.  
  17.          long_total=concatenar(cad1, cad2, cad3);
  18.  
  19.          printf("La concatenación tiene un total de %d caracteres.\n", long_total);
  20. }
  21. int long_cad(char cad1[]){
  22.          int i;
  23.          i=0;
  24.          
  25.  
  26.          while(cad1[i] != '\0')
  27.               i++;
  28.        
  29.          return(i);
  30. }
  31.  
  32. int concatenar(char cad1[], char cad2[], char cad3[]){
  33.                int tamano;
  34.                int i, j;
  35.                int error=1;
  36.  
  37.                tamano=long_cad(cad1) + long_cad(cad2);
  38.  
  39.                if(tamano > sizeof(cad3)){
  40.                    error=0;
  41.                    printf("No hay espacio suficiente para la concatenacion.\n");
  42.                }
  43.                else{
  44.  
  45.                    i = 0;
  46.  
  47.                    while(cad1[i] != '\0'){
  48.                       cad3[i]=cad1[i];
  49.                       i++;
  50.                    }
  51.                    j=0;
  52.  
  53.                    while(cad2[j] != '\0'){
  54.                      cad3[i]=cad2[j];
  55.                      j++;
  56.                      i++;
  57.                    }
  58.                    cad3[i+1]='\0';
  59.                }    
  60.                return(error);
  61. }

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.

Última edición por minette1988; 12/07/2010 a las 06:05