Foros del Web » Programación para mayores de 30 ;) » C/C++ »

comparar cadenas

Estas en el tema de comparar cadenas en el foro de C/C++ en Foros del Web. El siguiente programa compara cadenas, pero cuando lo compilo pongo por ejemplo: pepe pepe y me sale como resultado: Las dos cadenas son iguales. La ...
  #1 (permalink)  
Antiguo 22/07/2010, 13:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
comparar cadenas

El siguiente programa compara cadenas, pero cuando lo compilo pongo por ejemplo:

pepe
pepe

y me sale como resultado:

Las dos cadenas son iguales.
La primera es menor que la segunda
La primera es mayor que la segunda.

Cuando lo que quiero es que me salga sólo Las dos cadenas son iguales. ¿Cómo puedo hacerlo?

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.   char cad1[100];
  7.   char cad2[100];
  8.   int comparar;
  9.   int compara_cadenas(char[], char[]);
  10.  
  11.   printf("Cadena: ");
  12.   scanf("%99s", cad1);
  13.   printf("Cadena: ");
  14.   scanf("%99s", cad2);
  15.  
  16.   comparar=compara_cadenas(cad1, cad2);
  17.  
  18.   printf("Las dos cadenas son iguales.\n", comparar);
  19.   printf("La primera es menor que la segunda.\n", comparar);
  20.   printf("La primera es mayor que la segunda.\n", comparar);
  21.   getchar();
  22.   getchar();
  23. }
  24. int compara_cadenas( char cad1[],  char cad2[]){
  25.   int i;
  26.   int res;
  27.   i=0;
  28.  
  29.   while((cad1[i]==cad2[i]) && (cad1[i] != '\0') && (cad2[i] != '\0'))
  30.         i++;
  31.   if(cad1[i]==cad2[i]){
  32.       res=0;
  33.     }
  34.   else
  35.       if(cad1[i]<cad2[i])
  36.           res=-1;
  37.       else
  38.           res=1;
  39.   return(res);
  40. }
  #2 (permalink)  
Antiguo 22/07/2010, 13:22
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: comparar cadenas

Lo que te anda faltando son los condicionales para poder decidir que codigo mostrar... de la misma forma que tu funcion campara_cadenas se fija si es mayor igual o menor, podes hacer que se fije el resultado de la funcion. De esta forma:

Código C++:
Ver original
  1. comparar=compara_cadenas(cad1, cad2);
  2.  
  3.  if (comparar== 0 )   printf("Las dos cadenas son iguales.\n");
  4.  if (comparar== -1)   printf("La primera es menor que la segunda.\n");
  5.  if (comparar== 1 )   printf("La primera es mayor que la segunda.\n");

Fijate que pasar la variable comparar en el prinft esta de mas, ya que no mostras ningun entero!!

Etiquetas: cadenas, comparar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:49.