Bonjour,
Je cherche à trier les lignes d'un fichier (80 car et 100 lignes MAX) en C.
J'y suis arrivé avec le code ci-dessous, mais maintenant j'aimerais pouvoir effectuer le tri non plus sur le début de la ligne, mais par exemple en commençant au 10e caractère.
Je ne vois pas comment faire, quelqu'un peut-il m'aider ?????
Pascal
#include <stdio.h>
main()
{
/* variable */
char LIGNE[80]; /* chaîne pour les lignes du fichier */
char *MOT[100]; /* Pointeurs de car pour les 100 lignes */
char *TMP; /* pour la permutation des pointeurs */
int FIN; /* ligne où la dernière permutation a eu lieu */
FILE *F; /* fichier */
int I,J; /* pour les boucles */
/***********************************/
/* ouverture du fichier et lecture des lignes*/
/***********************************/
F = fopen("d:\\c\\fin\\fic.txt", "r");
for (I=0; I<100; I++)
{
/* Lecture de la ligne */
fgets(LIGNE, 80, F) ;
/* Réservation de la mémoire */
MOT[I] = malloc(strlen(LIGNE)+1);
if (MOT[I])
{
strcpy(MOT[I], LIGNE);
}
}
/***********************************/
/* Tri du tableau */
/***********************************/
for (I=99 ; I>0 ; I=FIN)
{
FIN=0;
for (J=0; J<I; J++)
if (strcmp(MOT[J],MOT[J+1])>0)
{
FIN=J;
TMP = MOT[J];
MOT[J] = MOT[J+1];
MOT[J+1] = TMP;
}
}
/***********************************/
/* Affichage du tableau trié */
/***********************************/
puts("Tableau trié :");
for (I=0; I<99; I++)
puts(MOT[I]);
while(getchar());
}