ordenar por orden alfabetica archivo txt en C

Iniciado por luch21, 13 Noviembre 2018, 00:16 AM

0 Miembros y 1 Visitante están viendo este tema.

luch21

Hola! Tengo que ordenar alfabeticamente un archivo txt dentro de un TDA y lo que hice no me esta funcionando, compila y ordena pero algunos nombres desaparecen en el archivo y en la hora de mostrar por consola lo muestra mal. Les adjunto lo que hice, mando solo la funcion de ordenar que esta dentro del TDA. El archivo ya lo consegui cargar con todos los nombres desordenados.
FILE*archivo = fopen("Equipos y Jugadores.txt","r");
    int i,j;
    int contador = 0;
    char aux[20];

    if(archivo == NULL)
    {
        printf("No se ha podido abrir el archivo.\n");
        exit(1);
    }

    for(i = 0; !feof(archivo); i++)
    {
        fgets(n[i].nombres,20,archivo);
        contador++;
    }

    for(i = 0; i < contador; i++)
    {
        for(j = 0; j < contador; j++)
        {
            if(strcmp(n[j].nombres,n[j+1].nombres) > 0)
            {
                strcpy(aux,n[j].nombres);
                strcpy(n[j].nombres,n[j+1].nombres);
                strcpy(n[j+1].nombres,aux);
            }
        }
    }
    fclose(archivo);
    fopen("Equipos y Jugadores.txt","w");

    for(i = 0; i < contador; i++)
    {
        fprintf(archivo,"%s",n[i].nombres);
    }