Advertisement
Kyrexar

Examen 21/05/12 - 1

May 21st, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. int palindromo( cadena[] ){ // Función que comprueba si una cadena es un palindromo
  2.     char *comp1, *comp2;
  3.     int i, j=0, tam;
  4.  
  5.     tam = strlen(cadena) // Tomo el tamaño de la cadena de origen
  6.  
  7.     comp1 = (char *) malloc(tam*sizeof(char); // Para dárselo a
  8.     comp2 = (char *) malloc(tam*sizeof(char); // los vectores dinámicos
  9.  
  10.     if( (comp1 == NULL) || (comp2 == NULL) ) printf("Falta memoria");
  11.     else{
  12.         for( i=0 ; i<tam ; i++ ){
  13.             if( cadena[i] !=' ' ){       // Este if se asegura de no añadir espacios
  14.                 cadena[i] = comp1[j];     // Aquí se añaden los valores de cadena a comp1
  15.                 j++;                      // j solo aumenta si no es un espacio, para que quede junto
  16.             }
  17.         }
  18.        
  19.         tam=strlen(comp1); // Ahora tomo eltamaño de la cadena comp1
  20.  
  21.         for( i=0 ; i<tam ; i++ )
  22.              comp1[i] = comp2[tam-i];     // Aquí se añaden los valores de cadena a comp2 del revés
  23.  
  24.     }
  25.  
  26.     tam = strcmp(comp1,comp2); // tam ahora servirá para comparar
  27.    
  28.     free(comp1);
  29.     free(comp2);
  30.    
  31.     return tam;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement