Doublons d'un tableau de char
Bonjour,
Actuellement je suis sur un code pour un projet (réseau de métro Parisien) et je souhaite afficher toutes les stations d'une ligne.
J'ai donc un code qui fonctionne parfaitement pour les afficher, mais le problèmes c'est qu'il les affiches 2 fois par station (dans une direction et dans le l'autre sur une ligne de métro)
Alors j'essaye de ne les affiche qu'une fois, le plus simple pour moi serait une fonction permettant de supprimer tous les doublons du tableau afin de ne les afficher qu'une seule fois.
Voici mon code actuel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| void mainListeStations(char nomLigne[])
{
int i, j, k = 0, l;
char* listeStations[50];
for(i = 0; i < metroParisien.nombreDeStations; i++)
{
for(j = 0; j < metroParisien.listeStations[i].nombreDeSections; j++)
{
if( strcmp(metroParisien.listeStations[i].sectionsStation[j].referenceLigne.nomLigne, nomLigne) == 0 )
{
listeStations[k] = metroParisien.listeStations[i].nomStation;
k++;
}
}
}
for(l = 0; l < k; l++)
{
printf("%s\n", listeStations[l]);
}
//interfaceResultatListeStations(&metroParisien, numeroLigne);
} |
Le tableau listeStations contient le nom de toutes les stations de la ligne donc, mais avec les doublons, par exemple si j'appel ma fonction avec une ligne (3 bis), j'ai le résultat suivant:
Code:
1 2 3 4 5 6
| Saint-Fargeau
Saint-Fargeau
Porte des Lilas
Gambetta
Pelleport
Pelleport |
(Il n'affiche qu'une fois Gambetta et Porte des Lilas car se sont les terminus et ils sont présents qu'une seule fois dans une des deux directions).
J'aimerais avoir quelque chose de ce type (peut importe l'ordre d'affichage des stations, dans l'ordre ou non, même si dans l'ordre serait mieux)
Code:
1 2 3 4
| Saint-Fargeau
Porte des Lilas
Gambetta
Pelleport |
Avez vous une idée de comment je peut réaliser une fonction permettant de supprimer les doublons d'un tableau de char et de l'affiche ensuite ?
Merci, en espérant une réponse rapide.
Cordialement,
Share45.