Supprimer doublons tableau C

Résolu
dharth Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   -  
dharth Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je dispose d'un char **tab, qui contient x rangés contenant chacune une chaine.
Je souhaiterais supprimer les doublons pour former un nouveau tableau.
exemple :
tab[0] = "toto";
tab[1] = "titi";
tab[2] = "toto";
tab[3] = "titi";
tab[4] = "tata";

et je voudrais créer une fonction comme array_unique en php qui me permettrait de récupérer dans un nouveau tableau :
new[0] = "toto";
new[1] = "titi";
new[2] = "tata";

Quelqu'un à une idée pour construire l'algo?
merci
A voir également:

2 réponses

dharth Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   13
 
Merci pour cette réponse, mais en fait j'ai trouvé, dans mon tableau les doublons se suivent obligatoirement, donc j'ai fait ceci (tab_new étant déja malloc):
while (tab_src[c] != NULL)
    {
        while (strcmp(tab_src[c], tab_new[d]) == 0)
            c++;
        d++;
        strcpy(tab_new[d], tab_src[c]);
        c++;
    }

et ca fonctionne.
2
Brendonuts Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   12
 
Bonjour,

Pour i allant de 0 à tailletableau-1, faire,

Pour j allant de i+1 à taille-tableau-1, faire,

Si strcmp(tab[i],tab[j]), alors tab[j]=="";
fait
fait

Puis un parcours sur le tableau : si tab[n] != "", je stocke, sinon je passe au suivant.

Par contre, la comparaison de deux chaines de caractères en C doit se faire via une fonction précise type strcmp(chaine1, chaine2), et surtout pas de == !

Bonne chance
1
Brendonuts Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   12
 
Après réflexion, le dernier parcours est inutile : on peut créer le tableau directement dans le Si...
0