Bonjour,
encore des problèmes avec ma liste....
Le but : l'utilisateur entre des mots ce qui crée au fur et a mesure une liste avec tous les mots entrés.
MAIS (car il y a un mais), si le mot a déjà été entré, je dois incrémenter l'entier de la cellule au lieu de créer une nouvelle cellule de la liste.
J'ai am fonction pour chercher le mot, mais après je vois pas comment incrémenter...
J'ai tenté quelque chose, mais clairement ce n'est pas bon.

Merci
Julien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
#include <stdio.h>
#include <stdlib.h>
 
 
typedef struct element element;
struct element
{
    char chaine[80];
    int val;
    struct element *nxt;
};
typedef element* llist;
 
 
llist ajouterEnTete (llist liste, char const *mot);
void afficherListe(llist liste);
llist rechercherElement(llist liste, char const *mot);
 
 
char mot[80]; 
 
 
int main(int argc, char **argv)
{
llist maliste = NULL;
element* essai = malloc(sizeof(element));
beginning :
printf("Please, enter a word: \n");
fgets(mot,80,stdin);
printf("You entered the word : %s \n",mot);
essai=rechercherElement(maliste,mot);
if(essai!=NULL){
//essai->val = val+1;
//maliste=essai;
}
else{
maliste = ajouterEnTete(maliste,mot);
}
	printf("\n Type q to quit or Enter to continue \n");
	char answer = getchar();
		if(answer!='q'){
			goto beginning;
		} 
 
afficherListe(maliste);
//printf("%s ", maliste->chaine);
//printf("%d ", maliste->val);
 
 system("PAUSE");
    return 0;
}
 
 
 
llist ajouterEnTete (llist liste, char const *mot){
element* nouvelElement = malloc(sizeof(element));
strcpy(nouvelElement->chaine,mot);
nouvelElement->val = 1;
//printf("jouter");
//printf("%s ", nouvelElement->chaine);
//printf("%d ", nouvelElement->val);
nouvelElement->nxt = liste;
return nouvelElement;
}
 
 
void afficherListe(llist liste){
    element *tmp = liste;
    //printf("%s ", tmp->chaine);
      //  printf("%d ", tmp->val);
    while(tmp != NULL){
        //printf("affich");
        printf("%s ", tmp->chaine);
        printf("%d ", tmp->val);
        tmp = tmp->nxt;
    }
 
llist rechercherElement(llist liste, char const *mot){
element *tmp=liste;
while(tmp != NULL){
if(!strcasecmp(tmp->chaine,mot)){
	printf("Word spellt correctly");
       return tmp;
       }
   tmp = tmp->nxt;
   }
   return NULL;
}
}