Hola, necesito hacer un programa en C que ordene algunos nombres leidos desde un archivo de texto .txt y los muestre en pantalla ordenados alfabeticamente.
Hice el programa pero leyendo los nombres desde teclado, no he conseguido ordenarlos desde el archivo de texto, ojala me ayuden, gracias.
Les dejo el programa que dice
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
char **cadena, *aux;
int i, j, n;
char temp[20];
printf("Introduzca los cinco nombres:\n");
cadena = (char**)malloc(5*sizeof(char*));
for (i=0; i<5; i++) {
printf("Nombre %d: ", i+1);
//scanf(" %[^\n]", temp);
scanf("%s", temp);
cadena[i] = (char*)malloc((strlen(temp)+1)*sizeof(char));
strcpy(cadena[i], temp);
}
for (i=0; i<4; i++)
for (j=i+1; j<5; j++)
if ((strcmp(cadena[i], cadena[j])) > 0) {
aux = cadena[i];
cadena[i] = cadena[j];
cadena[j] = aux;
}
printf("La lista ordenada es:\n");
for (i=0; i<5 ; i++)
printf("%s\n", cadena[i]);
system("PAUSE");
}
¿Leiste algo de manejo de archivos?
Te recomiendo empezar por ahí!
En "El Lenguaje de Programacion C" hay un buen apartado sobre manejo de archivos.
Si sabes manejo de archivos, la verdad es que la diferencia entre el programa final y lo que hiciste acá es ínfima!
qsort()
Dulces Lunas!¡.