SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Penguin-man en Miércoles 22 de Noviembre de 2006, 07:08

Título: Comparacion
Publicado por: Penguin-man en Miércoles 22 de Noviembre de 2006, 07:08
Hola, necesito hacer un programa que por ejemplo se le introdusca 1 cadena de caracteres y la compare con otras que ya estan iniciadas, si es igual a la cadena 1 debuelve un 1, si no es igual que la compare con la numero 2 y asi sucesivamente, si no encuantra una cadena igual, devuelve un 0.

lo he tratado de hacer con cadenas de ifs pero no me sale y por otros metodo pero no funciona, tienen alguna idea de como hacerlo ?

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. char c1[]={'w','^'.'x','^','\0'}, c2[]={'w','^','x','\0'},c3[]={'w','x','^','\0'}, c4[]={'w','x','\0'}, cad[5];
  6. int nc;
  7.  
  8. //funcion com
  9.  
  10. int com()
  11. {
  12. int j;
  13. j=strcmp(cad, c1);
  14.  
  15. if (j==0)
  16. {nc=1;
  17. j=1;}
  18.  
  19. else j=strcmp(cad,c2);
  20.  
  21. if(j==0)
  22. {nc=2;
  23. j=1;}
  24. else j=strcmp(cad,c3);
  25.  
  26. if(j==0)
  27. {nc=3;
  28. j=1;}
  29. else j=strcmp(cad,c4);
  30.  
  31. if(j==0)
  32. {nc=4
  33. j=1;}
  34. else printf("error\n");
  35.  
  36. }
  37.  
  38. main()
  39. {
  40. int i=1,a=0;
  41. char o;
  42.  
  43. do{
  44. printf("introduce el termino # %i \n",i);
  45. scanf("%s",cad);
  46. i++;
  47. com();
  48. while(nc==0)
  49. {
  50. printf("no has introducido un termino valido \n vuelbe a ingresar el termino \n");
  51. scanf("%s",cad);
  52. com();
  53. }
  54.  
  55. if(nc!=0)
  56. {
  57. printf("Numero de comparacion devuelto = %i \n  desea ingresar otro termino? \n S o N \n",nc);
  58. scanf("%c",& o);
  59. }
  60.  
  61. if (o=='N')
  62. { printf("Fin de la ejecucion del programa \n ");
  63. break;
  64. }
  65.  
  66. }while(o =='S');
  67.  
  68. }
  69.  
  70.  
Título: Re: Comparacion
Publicado por: LeGatoRojo en Miércoles 22 de Noviembre de 2006, 07:36
pues la solución puede intuirse facilmente, piensa un poco mas, no soy el único que te dira que aquí no se hacen táreas
Título: Re: Comparacion
Publicado por: Bicholey en Miércoles 22 de Noviembre de 2006, 18:20
:D  :D  :D  :D


Pues como te dijeron vas por el camino correcto quiza esto te ayude un poco:


 #include <string.h>
 #include <stdio.h>

int main(void)
 {
    char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
    int ptr;

    ptr = strcmp(buf2, buf1);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 1\n");
    else
       printf("buffer 2 is less than buffer 1\n");

    ptr = strcmp(buf2, buf3);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 3\n");
    else
       printf("buffer 2 is less than buffer 3\n");

    return 0;
 }
Título: Re: Comparacion
Publicado por: Penguin-man en Miércoles 22 de Noviembre de 2006, 19:02
Gracias por su ayuda, y pues no esperaba que me hicieran la tarea si no que  me dieran una idea para seguir.
Título: Re: Comparacion
Publicado por: Bicholey en Miércoles 22 de Noviembre de 2006, 19:23
:D  :D  :D

je je je lo que pasa es que aqui muchos piden que se les haga su tarea y por lo regular solo ayudamos con problemas especificos...
Título: Re: Comparacion
Publicado por: Geo en Miércoles 22 de Noviembre de 2006, 21:40
¿Cuál es el error que te da tu programa?

¿Al compilar? El código que colocaste tiene unos errores de sintaxis (un ; en uno de los if, una coma en la declaración de las cadenas). Tras corregir esos errores el número de comparaciones devuelto es correcto.

Saludos,
JJ (Geo).
Título: Re: Comparacion
Publicado por: Penguin-man en Jueves 23 de Noviembre de 2006, 05:06
Si parece que ese era el error, bueno pues ya funciona solo era cuestion de pensar mas, solo que ya me estaba desesperando, el error era de funcionamiento, si compilaba, pero al correrlo no devolvia el valor correcto,  gracias por su ayuda.
Título: Re: Comparacion
Publicado por: Geo en Jueves 23 de Noviembre de 2006, 14:43
Cita de: "Penguin-man"
Si parece que ese era el error, bueno pues ya funciona solo era cuestion de pensar mas, solo que ya me estaba desesperando, el error era de funcionamiento, si compilaba, pero al correrlo no devolvia el valor correcto,  gracias por su ayuda.
Qué bien que ya lo arreglaste, pero recuerda: paciencia ante todo  :hola:.

Saludos,
JJ (Geo).