Título: Ordenar alfabéticamente array de punteros a char (lenguaje C) Publicado por: DanielPy en 5 Enero 2015, 23:52 pm Hola a todos.
El programa que dejo a continuación funciona correctamente, lo que no logro hacer son 2 cosas que desearía me enseñen a concretarlas.- Quiero en primer lugar eliminar esta línea. Código
Como debo hacer con sizeof para saber cuántos punteros tengo declarado en el array de punteros provincias, me funciona con char, int, pero no con array de punteros.- Lo otro que no puedo lograr es pasar el array provincias a una función, para que se entienda quiero hacer lo mismo con 2 funciones, una que se llame mostrar y la otra ordenar, en este caso me interesaría más que me escriban un poco de teoría que la sintaxis (si es mucho pedir, mil disculpas).- Código
Saludos. Daniel Título: Re: Ordenar alfabéticamente array de punteros a char (lenguaje C) Publicado por: crack81 en 6 Enero 2015, 01:23 am Buenas compadre te dejo mi version, ojo cuidado con el uso que le das al preprocesador de c ese "define"
en mi punto de vista para este caso son mejor las constantes en la parte de las funciones les pase por parametros puntero ya que el paso por referencia como tal no existe en c, caso contrario en mi amado c++ XD Te dejo mi version espero sea de ayuda Código
saludos si tienes alguna duda o cuestionamiento hazmelo saber saludos.. Título: Re: Ordenar alfabéticamente array de punteros a char (lenguaje C) Publicado por: rir3760 en 6 Enero 2015, 03:23 am Como debo hacer con sizeof para saber cuántos punteros tengo declarado en el array de punteros provincias, me funciona con char, int, pero no con array de punteros. Para conocer el numero de elementos en un array sin importar su tipo basta con utilizar:Código Donde "a" es el identificador del array. Un saludo Título: Re: Ordenar alfabéticamente array de punteros a char (lenguaje C) Publicado por: DanielPy en 6 Enero 2015, 18:31 pm Hola crack81.
Citar saludos si tienes alguna duda o cuestionamiento hazmelo saber saludos.. No te das una idea lo que ayuda esa frase a alguien que como yo (63 años) que está tan sólo en este bello camino del aprendizaje de la programación, espero que como tantos otros estés siempre allí para evacuar mis dudas.-En cuanto al código, perfecto con eso ya me di cuenta como pasar un array de punteros a función, sólo una cosita, ¿qué diferencia hay en hacer las funciones con prototipo y sin prototipo?.- rir3760, un párrafo aparte para tús aportes, ya son innumerables los códigos distintos que te e copiado, lo tuyo es genial.- ;-) ;-) ;-) Por último mil disculpas por ser tan poco pragmático en lo que escribí, no siempre se puede aplicar la fórmula perfecta, 50% mente y 50% corazón, esta vez fue 20 y 80.- Saludos. Daniel Título: Re: Ordenar alfabéticamente array de punteros a char (lenguaje C) Publicado por: rir3760 en 7 Enero 2015, 18:42 pm ¿qué diferencia hay en hacer las funciones con prototipo y sin prototipo? Las ventajas del uso de prototipos superan con mucho a las desventajas que no hay razón (de peso) para no utilizarlos.Aun así si se quiere desarrollar un programa sin prototipos es posible siempre y cuando se cumpla con varios requerimientos: para empezar toda función debe definirse antes de cualquier uso de esta. Si eso no es posible (por ejemplo en el caso de dos funciones donde una llame a la otra) todavía hay la posibilidad de terminar con un programa funcional pero se deben cubrir dos requisitos: 1) El numero y tipo de parámetros de la función debe coincidir con la llamada (no es posible con funciones con un numero variable de argumentos como printf) y 2) El valor de retorno de la función debe ser de tipo int. Si no se cumplen ambos ya no hay garantías sobre el resultado del programa (comportamiento no definido o UB). Lo anterior es la razón por la que, de vez en cuando, algunos usuarios comentan que pueden utilizar una función de la biblioteca estándar de C sin incluir el encabezado correspondiente. Un caso común es system: Código Como ahí la llamada coincide con la declaración no hay problema. Pero en otros casos no es así, por ejemplo con atof: Código Ya que el valor de retorno se asume como int cuando en realidad es double ello resulta en UB (puede funcionar correctamente o no, en mi caso no lo hace e imprime como salida 0.00). En resumen mejor utilizar prototipos y te olvidas de los dolores de cabeza. Un saludo |