VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Supprimer doublons tableau C [Résolu]

dharth 113Messages postés 6 avril 2008Date d'inscription 24 avril 2012Dernière intervention - Dernière réponse le 25 nov. 2010 à 16:02
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
Lire la suite 

Supprimer doublons tableau C »

3 réponses
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Brendonuts- 25 nov. 2010 à 15:51
Après réflexion, le dernier parcours est inutile : on peut créer le tableau directement dans le Si...
Ajouter un commentaire
Ce document intitulé « Supprimer doublons tableau C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?