elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Buscar string en Matriz [Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buscar string en Matriz [Solucionado]  (Leído 13,054 veces)
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Buscar string en Matriz [Solucionado]
« en: 23 Enero 2012, 16:36 pm »

Hola tengo este codigo mas o menos y necesito buscar el string en la matriz y que me diga si esta o no, una palabra en la matriz.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i,j,name;
  7. char nino[]="";
  8. char vec[6][6]={"agus","pepe","zazu","juan","luca"};
  9. //-------------CARGAMOS NOMBRES DE NIÑOS-----------------//
  10.  
  11.  
  12. //-------------INGRESE NOMBRE A BUSCAR-----------------//
  13.  
  14. printf("\nIngrese el nombre que desea buscar:");
  15. gets(nino);
  16.  
  17.  
  18. printf("\n[%s]\n",nino);
  19.  
  20. //-------------BUSCAMOS NOMBRE EN VECTOR-----------------//
  21. for(i=0;i<6;i++)
  22. {
  23. for(j=0;j<6;j++)
  24. {
  25. ????¿?¿??¿
  26. ????¿?¿??¿
  27. }
  28. }
  29. return 0;
  30. }


« Última modificación: 24 Enero 2012, 16:00 pm por ;c1v!c » En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 219


¡El conocimiento es de todos!


Ver Perfil
Re: Buscar string en Matriz
« Respuesta #1 en: 23 Enero 2012, 16:41 pm »

Buenas ;c1v!c

Debes proporcionar mas informacion para que podamos ayudarte. Concretamente necesito saber si la palabra puede estar en horizontal, en vertical, en diagonal, del derecho y del revés, ya que todo esto hace que el codigo que hay en el bucle sea mas extenso o no....


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Buscar string en Matriz
« Respuesta #2 en: 23 Enero 2012, 16:59 pm »

las palabras estan en horizontal creo.

Se me ocurre algo de q "Mientras no sea \0 q siga ejecutando hasta guardar el string y despues compararlo con el ingresado para ver si esta en la lista o no, o algo asi"

tengo este codigo q modifique recien y me muestra las palabras.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int i,j,name;
  7. char nino[]="";
  8. char vec[5][5]={"agus","pepe","zazu","juan","luca"};
  9. //-------------CARGAMOS NOMBRES DE NIÑOS-----------------//
  10.  
  11.  
  12. //-------------INGRESE NOMBRE A BUSCAR-----------------//
  13.  
  14. printf("\nIngrese el nombre que desea buscar:");
  15. gets(nino);
  16.  
  17.  
  18. printf("\n[%s]\n",nino);
  19.  
  20. //-------------BUSCAMOS NOMBRE EN VECTOR-----------------//
  21. for(i=0;i<6;i++)
  22. {
  23. for(j=0;j<6;j++)
  24. {
  25. printf("%c",vec[i][j]);
  26.  
  27. }
  28. printf("\n");
  29. }
  30.  
  31. printf("%c\n",vec[4][5]);
  32. return 0;
  33. }
« Última modificación: 23 Enero 2012, 17:12 pm por ;c1v!c » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Buscar string en Matriz
« Respuesta #3 en: 23 Enero 2012, 17:53 pm »

El primer error en el programa es declarar el array "nino" de esta forma:
Código
  1. char nino[]="";
Ya que ello es equivalente a:
Código
  1. char nino[] = {'\0'};
Donde se declara un array que puede almacenar un único carácter. En su lugar debes declarar el array indicando su numero de elementos y sin inicializar (ya que lo primero que haces con la variable es asignarle un valor mediante la función "gets" que, para empezar deberías evitar).

Y si no se trata de una sopa de letras solo tienes que utilizar un bucle para procesar todas las cadenas del array, por cada una utilizas la función "strcmp" (prototipo en <string.h>) para verificar si coincide con la buscada o no.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Buscar string en Matriz
« Respuesta #4 en: 23 Enero 2012, 20:20 pm »

llegue a este codigo a ver si me dicen q estoy haciendo mal
o cual es mi error.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7. int i,j,k;
  8. int ok=0;
  9. char name[6];
  10. char nino[6];
  11. char vec[5][5]={"agus","pepe","zazu","juan","luca"};
  12.  
  13. //-------------INGRESE NOMBRE A BUSCAR-----------------//
  14.  
  15. printf("\nIngrese el nombre que desea buscar:");
  16. fgets(nino, 6, stdin);
  17. if (nino[strlen(nino)-1] == '\n');
  18. nino[strlen(nino)-1] = '\0';
  19.  
  20. //-------------BUSCAMOS NOMBRE EN VECTOR-----------------//
  21. for(i=0;i<5;i++)
  22. {
  23. for(k=0,j=0;j<5;j++)
  24. {
  25. if(vec[i][j]!='\0')
  26. name[k++]=vec[i][j];
  27. printf("%c",vec[i][j]);
  28. }
  29. printf("\n");
  30. if(name==nino)
  31. {printf("\tEl nombre si se encuentra en la lista\n");
  32. ok=1;}
  33. }
  34. if(ok!=1)
  35. printf("\tEl nombre no esta en la lista\n");
  36.  
  37.  
  38. return 0;
  39. }
« Última modificación: 23 Enero 2012, 20:32 pm por ;c1v!c » En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Buscar string en Matriz
« Respuesta #5 en: 23 Enero 2012, 21:14 pm »

A primera vista, y no me he parado a revisar todo el código, en C no puedes comparar cadenas asi:

Código
  1. if(name==nino)

Usa strcmp para ello:

http://cplusplus.com/reference/clibrary/cstring/strcmp/
En línea

;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Buscar string en Matriz
« Respuesta #6 en: 23 Enero 2012, 21:57 pm »

probe la funcion de la siguiente manera como estaba en el ejemplo pero nose por q no funciona.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7. int i,j,k;
  8. int ok=0;
  9. char name[6];
  10. char nino[6];
  11. char vec[6][6]={"agus","pepe","zazu","juan","luca"};
  12.  
  13. //-------------INGRESE NOMBRE A BUSCAR-----------------//
  14.  
  15. printf("\nIngrese el nombre que desea buscar:");
  16. fgets(nino, 6, stdin);
  17. if (nino[strlen(nino)-1] == '\n');
  18. nino[strlen(nino)-1] = '\0';
  19.  
  20. //-------------BUSCAMOS NOMBRE EN VECTOR-----------------//
  21. for(i=0;i<5;i++)
  22. {
  23. for(k=0,j=0;j<5;j++)
  24. {
  25. if(vec[i][j]!='\0')
  26. {name[k++]=vec[i][j];
  27. printf("%c",vec[i][j]);}
  28. }
  29. if(strcmp (nino,name) == 0)
  30. {printf("\tEl nombre si se encuentra en la lista\n");}
  31. printf("\n");
  32. }
  33.  
  34.  
  35. // if(ok!=1)
  36. // printf("\tEl nombre no esta en la lista\n");
  37.  
  38.  
  39. return 0;
  40. }
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Buscar string en Matriz
« Respuesta #7 en: 24 Enero 2012, 01:45 am »

El error se debe a que al copiar el nombre en el array "name" no agregas el indicador de fin de cadena (el '\0'), justo después del bucle interno. Con el cambio:
Código
  1. for (k = 0, j = 0; j < 5; j++) {
  2.   if (vec[i][j] != '\0') {
  3.      name[k++] = vec[i][j];
  4.      printf ("%c", vec[i][j]);
  5.   }
  6. }
  7. name[k] = '\0';
  8.  
  9. /* ... */

Sin embargo ese bucle no es necesario ya que puedes hacer la comparación directamente, con un solo bucle:
Código
  1. for (i = 0; i < 5; i++)
  2.   if (strcmp(nino, vec[i]) == 0)
  3.      printf ("El nombre %s si se encuentra en la lista\n", nino);

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: Buscar string en Matriz
« Respuesta #8 en: 24 Enero 2012, 15:57 pm »

Bueno lo consegui aca les dejo el codigo para que lo vean y el que necesite tenga una idea de como hacerlo, espero que les sirva.
Gracias a todos por responder!!!

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7. int i,j,k;
  8. int ok=0;
  9. char name[6];
  10. char nino[6];
  11. char vec[6][6]={"agus","pepe","zazu","juan","luca"};
  12.  
  13. //-------------INGRESE NOMBRE A BUSCAR-----------------//
  14.  
  15. printf("\nIngrese el nombre que desea buscar:");
  16. fgets(nino, 6, stdin);
  17. if (nino[strlen(nino)-1] == '\n');
  18. nino[strlen(nino)-1] = '\0';
  19.  
  20. //-------------BUSCAMOS NOMBRE EN VECTOR-----------------//
  21. for(i=0;i<5;i++)
  22. {
  23. for(k=0,j=0;j<5;j++)
  24. {
  25. printf("%c",vec[i][j]);
  26. if (strcmp(nino, vec[i]) == 0)
  27.     ok=1;
  28. }
  29. printf("\n");
  30. }
  31. if(ok!=0)
  32. printf ("\t|| El nombre [%s] si se encuentra en la lista ||\n", nino);
  33. else
  34. printf ("\t|| El nombre [%s] no esta ||\n", nino);
  35.  
  36. return 0;
  37. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pascal: Buscar en una matriz.
Ejercicios
Traspuesto 2 9,046 Último mensaje 21 Abril 2008, 23:21 pm
por barbate
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
EddyW 2 6,014 Último mensaje 14 Agosto 2010, 06:18 am
por EddyW
[Solucionado] Comparar un String con cada una de las partes de otro String « 1 2 »
.NET (C#, VB.NET, ASP)
Segurida 13 12,452 Último mensaje 14 Mayo 2011, 18:52 pm
por Segurida
Ayuda con string y matriz =(
Ejercicios
kenkatsu 1 4,841 Último mensaje 12 Octubre 2011, 13:43 pm
por Valkyr
[SOLUCIONADO] Buscar todas las variantes de un string
.NET (C#, VB.NET, ASP)
Eleкtro 2 2,614 Último mensaje 9 Enero 2013, 15:56 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines