Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : liste chainée [ Algorithme / Compression, Split & Cryptage ] (skulls94)

mercredi 18 avril 2007 à 12:24:10 | liste chainée

skulls94

bonjour, je dois faire un  programme qui lit un fichier mot à mot et qui les stocke dans une liste chainée seulement si ils ne sont pas deja present.
voici une partie de mon code:

 while (fscanf(fp,"%s",mot),!feof(fp))
              {                                                  
                                                                               
                   if(P!=NULL){
                   printf("P->chaine =%s\n",P->chaine);
                   }

                   printf("Le mot lu dans le fichier est %s\n",mot);
                                                 
                     if(P==NULL)
                     {     P=enfin(P,mot); //
                          printf("P->chaine ds p0=%s\n",P->chaine);                                     
                     }
                                       
                    
                     else
                     {                                              
                            printf("P->chaine dans else=%s\n",P->chaine);
                           if(P->chaine==mot) fprintf(fp2,"%d",i);// cas où le mot est le 1er de la liste.


Mon soucis c'est que "P->chaine" contient tjrs le mot en cours de lecture au lieu de garder en memoir le precedent. Je ne vois pas à quelle moment il fait l'affectation P->chaine=mot en cours de lecture et pourtant le dernier printf affiche bien le dernier mot lu...
Merci

jeudi 19 avril 2007 à 17:26:08 | Re : liste chainée

yoyo269

Membre Club
Salut !

Ya un souci ici : if(P->chaine==mot) fprintf(fp2,"%d",i);// cas où le mot est le 1er de la liste.
Essaye plutôt ça à la place :
if(!strcmp(P->chaine, mot)) fprintf(fp2,"%d",i);// cas où le mot est le 1er de la liste.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]


jeudi 19 avril 2007 à 18:57:49 | Re : liste chainée

skulls94

salut yoyo,


merci pour ta reponse mais cela ne resoud pas mon probleme, car P->chaine==mot à chaque incrementation de la boucle.
Concernant le 1er mot du fichier on entre bien dans la condition:
                    if(P==NULL)
                     {     P=enfin(P,mot); //
                          printf("P->chaine ds p0=%s\n",P->chaine);                                     
                     }

 Et pour les mots suivants le printf :   if(P!=NULL) printf("P->chaine =%s\n",P->chaine);                                                    
                                                       
 s'effectue bien, ce qui prouve  qu'une liste chainée a été créé et elle devrait contenir le premier mot, or ce printf va indiquer le mot qui est en cours de lecture dans le fichier, c'est là le probleme a mon avis.

Je ne comprends pas comment cela est possible, vu que je ne fait aucune affectation avant if(P==NULL).

Merci



Cette discussion est classé dans : mot, chaine, liste, printf, chainée


Répondre à ce message

Sujets en rapport avec ce message

Help urgent !! liste doublement chainée [ par arthur007 ] Bonjour à touspuisuqe je suis un débutant dans la programmation C, j'ai besoin de votre aide.j'ai 2 structures: typedef struct Comp{int Code; char Nom Liste chainéés [ par anek971 ] Bonjour a tousEnfaite il y a déà eu un poste sur le site sur ce sujet mais ayant le mm tp a faire je me suis rendu compte ke sa fonction quitter ne ma va_list [ par garslouche ] Salut à tous,je voudrais faire un truc idiot mais c juste pour un test : je voudrais faire une fonction myprintf qui fasse comme printf (en utilisant HELP HELP EN C !!! [ par cali1983 ] Voilà j'ai un problème pour crypter un texte j'ai fais un programme il n'a aucune erreur si ce n'est qu'il veut pas faire ce que je dis.Il ne veut pas Récupérer un mot dans une liste quand clique dessus [ par goutbouyo ] Salut,J'ai une liste qui affiche des noms enregistrées dans un fichier.Je voudrais que quand on clique sur un mot ça me donne le nom de ce mot pour qu Passage par adresse d'un tableau de structures. [ par alekine ] Bonjour, j'ai un problème pour passer par adresse un tableau de structures. Voilà mon code:#include #define L_MAX 2struct point //la structure d'un p [Visual C++]Rechercher dans une liste [ par goutbouyo ] Salut, Et oui encore moi...Je voudrais pouvoir effectuer une recherche interne dans mon prog. On tape sa recherche dans un edit box puis on clique sur [c] plantage du program,base 2 donné, surmen un pb de struct [ par Diony ] jvous explique mon probleme . ce programme est une base de données de recettes . et il plante a la fonction inserer_recette_fin_liste (vers le milieu Trouver un mot dans une chaine en C (urgent) [ par Buzu ] Salut!Voila : y a t-il une fonction en c qui permette de dire s'il y a un mot dans une chaine ou pas?Par exemple la chaine "Bonjour je suis moi" et je base de donnee / ado / et liste chaine [ par callaghan1981 ] hello a ts..j ai un petit bleme..jarrive a me connecter a une base de donne, de consulter la baseet je desire now mettre tt les champs dune table ou r


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.