| 
	
		|  Autor | Tema: Buscar string en Matriz [Solucionado]  (Leído 13,808 veces) |  
	| 
			| 
					
						| ;c1v!c 
								
								 Desconectado 
								Mensajes: 151
								
								 
								Forma parte de esta comunidad gamer!!!
								
								
								
								
								
								     | 
 
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. #include <stdio.h>#include <stdlib.h> int main(){	int i,j,name;	char nino[]="";	char vec[6][6]={"agus","pepe","zazu","juan","luca"};	//-------------CARGAMOS NOMBRES DE NIÑOS-----------------//  	//-------------INGRESE NOMBRE A BUSCAR-----------------// 	printf("\nIngrese el nombre que desea buscar:");   	//-------------BUSCAMOS NOMBRE EN VECTOR-----------------//	for(i=0;i<6;i++)	{		for(j=0;j<6;j++)		{			????¿?¿??¿			????¿?¿??¿		}	}	return 0;}
 
 |  
						| 
								|  |  
								| « Última modificación: 24 Enero 2012, 16:00 pm por ;c1v!c » |  En línea | 
 
 |  |  |  | 
			| 
					
						| soyloqbuskas 
								
								 Desconectado 
								Mensajes: 219
								
								 
								¡El conocimiento es de todos!
								
								
								
								
								
								   | 
 
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 
								Mensajes: 151
								
								 
								Forma parte de esta comunidad gamer!!!
								
								
								
								
								
								     | 
 
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. #include <stdio.h>#include <stdlib.h> int main(){	int i,j,name;	char nino[]="";	char vec[5][5]={"agus","pepe","zazu","juan","luca"};	//-------------CARGAMOS NOMBRES DE NIÑOS-----------------//  	//-------------INGRESE NOMBRE A BUSCAR-----------------// 	printf("\nIngrese el nombre que desea buscar:");   	//-------------BUSCAMOS NOMBRE EN VECTOR-----------------//	for(i=0;i<6;i++)	{		for(j=0;j<6;j++)		{ 		}	} 	return 0;}
 |  
						| 
								|  |  
								| « Última modificación: 23 Enero 2012, 17:12 pm por ;c1v!c » |  En línea | 
 
 |  |  |  | 
			| 
					
						| rir3760 
								       
								
								 Desconectado 
								Mensajes: 1.639
								
								
								
								
								
								   | 
 
El primer error en el programa es declarar el array "nino" de esta forma: char nino[]="";
 Ya que ello es equivalente a: 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 
								Mensajes: 151
								
								 
								Forma parte de esta comunidad gamer!!!
								
								
								
								
								
								     | 
 
llegue a este codigo a ver si me dicen q estoy haciendo mal o cual es mi error. #include <stdio.h>#include <stdlib.h>#include <string.h> int main(){	int i,j,k;	int ok=0;	char name[6];	char nino[6];	char vec[5][5]={"agus","pepe","zazu","juan","luca"}; 	//-------------INGRESE NOMBRE A BUSCAR-----------------// 	printf("\nIngrese el nombre que desea buscar:");	if (nino[strlen( nino)-1] == '\n'); 	//-------------BUSCAMOS NOMBRE EN VECTOR-----------------//	for(i=0;i<5;i++)	{		for(k=0,j=0;j<5;j++)		{			if(vec[i][j]!='\0')				name[k++]=vec[i][j];					}		if(name==nino)			{printf("\tEl nombre si se encuentra en la lista\n");			ok=1;}	}	if(ok!=1)			printf("\tEl nombre no esta en la lista\n");  	return 0;}
 |  
						| 
								|  |  
								| « Última modificación: 23 Enero 2012, 20:32 pm por ;c1v!c » |  En línea | 
 
 |  |  |  |  |  | 
			| 
					
						| ;c1v!c 
								
								 Desconectado 
								Mensajes: 151
								
								 
								Forma parte de esta comunidad gamer!!!
								
								
								
								
								
								     | 
 
probe la funcion de la siguiente manera como estaba en el ejemplo pero nose por q no funciona. #include <stdio.h>#include <stdlib.h>#include <string.h> int main(){	int i,j,k;	int ok=0;	char name[6];	char nino[6];	char vec[6][6]={"agus","pepe","zazu","juan","luca"}; 	//-------------INGRESE NOMBRE A BUSCAR-----------------// 	printf("\nIngrese el nombre que desea buscar:");	if (nino[strlen( nino)-1] == '\n'); 	//-------------BUSCAMOS NOMBRE EN VECTOR-----------------//	for(i=0;i<5;i++)	{		for(k=0,j=0;j<5;j++)		{			if(vec[i][j]!='\0')				{name[k++]=vec[i][j];					}			{printf("\tEl nombre si se encuentra en la lista\n");}	}  //	if(ok!=1)//			printf("\tEl nombre no esta en la lista\n");  	return 0;}
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| rir3760 
								       
								
								 Desconectado 
								Mensajes: 1.639
								
								
								
								
								
								   | 
 
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: for (k = 0, j = 0; j < 5; j++) {   if (vec[i][j] != '\0') {      name[k++] = vec[i][j];   }}name[k] = '\0'; /* ... */
 Sin embargo ese bucle no es necesario ya que puedes hacer la comparación directamente, con un solo bucle: for (i = 0; i < 5; i++)   if (strcmp(nino,  vec[ i]) == 0)      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 
								Mensajes: 151
								
								 
								Forma parte de esta comunidad gamer!!!
								
								
								
								
								
								     | 
 
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!!! #include <stdio.h>#include <stdlib.h>#include <string.h> int main(){	int i,j,k;	int ok=0;	char name[6];	char nino[6];	char vec[6][6]={"agus","pepe","zazu","juan","luca"}; 	//-------------INGRESE NOMBRE A BUSCAR-----------------// 	printf("\nIngrese el nombre que desea buscar:");	if (nino[strlen( nino)-1] == '\n'); 	//-------------BUSCAMOS NOMBRE EN VECTOR-----------------//	for(i=0;i<5;i++)	{		for(k=0,j=0;j<5;j++)		{			if (strcmp(nino,  vec[ i]) == 0)    			ok=1;		}	}	if(ok!=0)		printf ("\t|| El nombre [%s] si se encuentra en la lista ||\n", nino);	else		printf ("\t|| El nombre [%s] no esta ||\n", nino); 	return 0;}
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Pascal: Buscar en una matriz. Ejercicios
 | Traspuesto | 2 | 9,448 |  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,366 |  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 | 13,540 |  14 Mayo 2011, 18:52 pm por Segurida
 |  
						|   |   | Ayuda  con string y matriz =( Ejercicios
 | kenkatsu | 1 | 5,156 |  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,883 |  9 Enero 2013, 15:56 pm por Eleкtro
 |    |