• Sábado 9 de Noviembre de 2024, 03:33

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - emeap

Páginas: [1]
1
C/C++ / Re: Comparando cadenas en un array de cadenas
« en: Martes 2 de Junio de 2009, 12:58 »
He corregido un poco el código de fallos garrafales que he visto. Tengo una duda, para comparar "pedro" con "pedro garcia", ¿tendría que hacerlo con un bucle letra por letra comparando hasta el espacio por ejemplo?

2
C/C++ / Comparando cadenas en un array de cadenas
« en: Martes 2 de Junio de 2009, 12:30 »
Buenas, tengo un problema con un ejercicio en el cual hay que buscar una cadena (previamente declarada en el main) en un array de cadenas, y finalmente mostrar el numero de coincidencias...

Tengo el siguiente código:

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <conio.h>
  6.  
  7. #define MAX_TAM 5 //Constante que define la longitud máxima de la cadena
  8.  
  9. //Declaración de las funciones
  10. int devolver_coincidencias(char *array_nombres[], char *nombre);
  11. void visualizar(int contador);
  12.  
  13. //Main
  14. int main()
  15. {
  16.     int contador;
  17.     char *array_nombres[] = {"pedro garcia","pedro","miguel"}; //Iniciacion de las cadenas
  18.     char *nombre = {"pedro"};
  19.     contador = devolver_coincidencias(array_nombres,nombre);
  20.     visualizar(contador);
  21.     printf("n");
  22.     system("pause");
  23. }
  24.  
  25. //Funcion que devuelve el numero de coincidencias dentro del array de cadenas
  26. int devolver_coincidencias(char *array_nombres[], char *nombre)
  27. {
  28.     int a = 0; //Variable que se va moviendo por el array de cadenas
  29.     int contador = 0;
  30.     if(strlen(array_nombres[a]) == MAX_TAM) //Compara el tamaño buscado con el de la cadena del array
  31.     {
  32.              if(strcmp(nombre,array_nombres[a]) == 0) //Compara las cadenas
  33.              {
  34.                                               contador++; //Si son iguales, aumenta el contador
  35.              }
  36.     }
  37.     else
  38.     {
  39.         a++; //Sino va al siguiente elemento del array de cadenas
  40.     }
  41.     return contador; //retorna el valor del contador
  42. }
  43.  
  44. //Funcion que visualiza el numero de cadenas repetidas en el array
  45. void visualizar(int contador)
  46. {
  47.      printf("La cadena esta repetida %d veces", contador);
  48.      getch();
  49. }
  50.  
  51.  

Me sería de gran ayuda cualquier aporte. Gracias ^_^

Páginas: [1]