Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2012, 12:48
adalsuper
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 12 años
Puntos: 0
Pregunta comparar cadenas en C

muy buenas, estaba haciendo una funcion en C que me compara 2 cadenas entradas desde teclado.
el problema es que me dice siempre que son iguales
codigo:
Código C:
Ver original
  1. #include<stdio.h>
  2. #define MAX 20
  3.  
  4.  
  5. int comparaCad(char cad1[MAX],char cad2[MAX]);
  6.  
  7.  
  8. int main(){
  9.   char cad1[MAX],cad2[MAX];
  10.   int result;
  11.  
  12.   printf("introduzca 1 cadena:\n");
  13.   scanf("%s",cad1);
  14.   printf("introduzca 1 cadena:\n");
  15.   scanf("%s",cad2);
  16.  
  17.   result = comparaCad(cad1,cad2);
  18.  
  19.   if(result==0)
  20.     printf("cadenas iguales\n");
  21.   else{
  22.     if(result<0)
  23.       printf("cad1 es menor que cad2\n");
  24.     else
  25.       printf("cad1 es mayor que cad2\n");
  26.   }  
  27.  
  28.   return 0;
  29. }
  30.  
  31. int comparaCad(char cad1[MAX],char cad2[MAX]){
  32.   int i,comp,j;
  33.   char c1,c2;
  34.  
  35.   for(i=0,j=0; cad1[j]==cad2[i] && i<MAX && cad1[j]!='\0' && cad2[i]!='\0';++i,++j){
  36.     c1 = cad1[j];
  37.     c2 = cad2[i];
  38.   }
  39.  
  40.   if(c1 == '\0' && c1!=c2)
  41.     comp=-1;
  42.   else{
  43.     if(c2=='\0' && c2!=c1)
  44.       comp=1;
  45.     else{  
  46.   if(c1 == c2)
  47.     comp=0;
  48.   else{
  49.     if(c1 < c2)
  50.       comp=-1;
  51.     else
  52.       comp=1;
  53.   }
  54.     }
  55.   }
  56.  
  57.   return comp;
  58. }