Título: Error al comparar cadenas en estructuras Publicado por: ramona98 en 27 Agosto 2013, 16:01 pm Hola,
No se que problema puede existir pero no obtengo el resultado deseado: Código: #include <stdio.h> En el ultimo for y if intento rastear todos los registros de la estructura buscando si coinciden las cadenas city1 y city2 para imprimirlas, pero el resulado impreso no tiene nada que ver con los datos que tenemos :( Gracias y saludos! Título: Re: Error al comparar cadenas en estructuras Publicado por: rir3760 en 27 Agosto 2013, 16:21 pm Errores importantes hay varios:
* No indicar el numero de elementos de los arrays: Código Ahí los arrays de caracteres debes declararlos con cuatro elementos, los arrays de enteros con dos. * El numero de elementos en los arrays "city1" y "city2" esta mal, deben tener cuatro elementos (para los tres caracteres mas el '\0'). * Declaras el array "myfli" con cuatro elementos pero solo asignas valores a los primeros tres. Un saludo Título: Re: Error al comparar cadenas en estructuras Publicado por: ramona98 en 28 Agosto 2013, 09:29 am Gracias!
Mis preguntas, - segun tenia entendido, para los strings era mejor definirlos sin indicar el numero de elementos [], para las estructuras no es igual? - en los arrays de int siempre hay que definir los elemenots? _ en las estrucutras, tambien tenemos que definir previamente los elementos? que pasaria si quiero crear tantos elementos como el usuario quiero para "myfli" gracias y perdonen a un principiante ;) Título: Re: Error al comparar cadenas en estructuras Publicado por: do-while en 28 Agosto 2013, 10:23 am ¡Buenas!
Te veo un poco liada. En principio tienes las siguientes formas de declarar un vector: Código
Si utilizas un puntero o corchetes sin indicar un tamaño, el tamaño vendrá dado por la longitud de la lista de inicialización o si utilizas una cadena para inicialiar un vector de caracteres, por la longitud de dicha cadena. Si no inicializas el vector en el momento en el que lo declaras, solo tendrás un puntero a alguna parte de la memoria que no sabrás cual es. Si has utilizado la notación de corchetes este puntero no podrá modificarse, por lo que habrás conseguido tener un puntero que no te sirve para nada ( ;D) y si has utilizado la notación de puntero si que podrás apuntar a donde quieras, pero en principio no tendrás ningun valor almacenado ni el puntero apuntara a una zona de memoria en la que puedas almacenar información. Si utilizas corchetes indicando un tamaño, tendras un conjunto de bytes en memoria donde puedas leer y escribir datos de forma segura, siempre y cuando no te salgas fuera de dicho tamaño. En el caso de las cadenas de caracteres recuerda que tienes un caracter adicional, '\0', que indica donde termina la cadena, por lo que como mucho podrás almacenar tamaño - 1 caracteres. Si no te queda claro, avisa. ¡Saludos! |