Commit efd96bef3ad67d0e371e091899778d8728c5e129
1 parent
ebd317c5
Projet modifié
Showing
1 changed file
with
25 additions
and
20 deletions
Show diff stats
correcteur.c
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | #include <string.h> |
5 | 5 | |
6 | 6 | #define MAX_LETTRES 30 |
7 | -#define size 26 | |
7 | +#define size 255 | |
8 | 8 | |
9 | 9 | |
10 | 10 | typedef struct node { |
... | ... | @@ -64,19 +64,20 @@ void ajout(Node **N, char lettre) |
64 | 64 | void ajout_alphab(Node ** pn, char * mot,int cpt) |
65 | 65 | { |
66 | 66 | Node * tmp= *pn; |
67 | - //printf("%d \n",cpt); | |
68 | 67 | char lettre=mot[cpt]; |
69 | - int pos = lettre - 'a'; | |
70 | - //printf("%c \n",lettre); | |
71 | - cpt++; | |
68 | + int pos; | |
69 | + /*if (lettre>=97 && lettre<=122) pos = lettre - 'a'; | |
70 | + if (lettre == 39) pos=26; | |
71 | + if (lettre>='A' && lettre <= 'Z') pos =lettre -'A';*/ | |
72 | + pos=lettre; | |
72 | 73 | if (lettre == '\0'){ |
73 | 74 | (*tmp).fin_de_mot=1; |
74 | 75 | return; |
75 | 76 | } |
76 | 77 | if (tmp->lettres[pos] == NULL) { |
77 | - //printf("Rentré \n"); | |
78 | 78 | ajout(&tmp->lettres[pos],lettre); |
79 | 79 | } |
80 | + cpt++; | |
80 | 81 | return ajout_alphab(&tmp->lettres[pos],mot,cpt); |
81 | 82 | |
82 | 83 | |
... | ... | @@ -90,7 +91,7 @@ void ajout_alphab(Node ** pn, char * mot,int cpt) |
90 | 91 | Node * charger_arbre(Node ** Arbre){ |
91 | 92 | FILE * dico; |
92 | 93 | char mot[MAX_LETTRES]; |
93 | - dico = fopen("test.txt","r"); | |
94 | + dico = fopen("words.txt","r"); | |
94 | 95 | int i; |
95 | 96 | while ((i = fscanf(dico,"%s",mot)) == 1){ |
96 | 97 | ajout_alphab(Arbre,mot,0); |
... | ... | @@ -143,6 +144,7 @@ void detruire_arbre(Node ** Arbre) |
143 | 144 | void initialisation(Node ** Arbre){ |
144 | 145 | Node *nouveau = malloc(sizeof(struct node)); |
145 | 146 | (*nouveau).l='?'; |
147 | + (*nouveau).fin_de_mot=0; | |
146 | 148 | for (int i=0; i<size; i++) nouveau->lettres[i] = NULL; |
147 | 149 | *Arbre = nouveau;} |
148 | 150 | |
... | ... | @@ -151,29 +153,31 @@ void initialisation(Node ** Arbre){ |
151 | 153 | |
152 | 154 | |
153 | 155 | |
154 | -void comparaison(Node ** pn, char * mot,int cpt) | |
156 | +void comparaison(Node ** pn, char * mot,int cpt) | |
155 | 157 | { |
156 | 158 | char lettre=mot[cpt]; |
157 | - int pos = lettre - 'a'; | |
159 | + int pos = lettre ; | |
158 | 160 | cpt++; |
159 | 161 | if (lettre == '\0'){ |
160 | - if((*pn).fin_de_mot=0) printf("erreur \n"); | |
161 | - return; | |
162 | + if((*pn)->fin_de_mot==0){ | |
163 | + printf("1 erreur \n"); | |
164 | + } | |
165 | + | |
166 | + return ; | |
162 | 167 | } |
163 | - if (tmp->lettres[pos] == NULL) { | |
164 | - printf("erreur \n"); | |
168 | + if ((*pn)->lettres[pos] == NULL) { | |
169 | + printf("1 erreur \n"); | |
170 | + return; | |
165 | 171 | } |
166 | - return comparaison(&pn->lettres[pos],mot,cpt); | |
172 | + return comparaison(&(*pn)->lettres[pos],mot,cpt); | |
167 | 173 | |
168 | 174 | |
169 | 175 | } |
170 | 176 | |
171 | -void test_erreur(){ | |
172 | - Node * Dico; | |
173 | - charger_arbre(&Dico); | |
177 | +void test_erreur(Node * Dico){ | |
174 | 178 | FILE * texte; |
175 | 179 | char mot[MAX_LETTRES]; |
176 | - texte = fopen("texte.txt","r"); | |
180 | + texte = fopen("test.txt","r"); | |
177 | 181 | int i; |
178 | 182 | while ((i = fscanf(texte,"%s",mot)) == 1){ |
179 | 183 | comparaison(&Dico,mot,0); |
... | ... | @@ -192,8 +196,9 @@ int main(){ |
192 | 196 | charger_arbre(&Arbre); |
193 | 197 | affichage_arbre(Arbre); |
194 | 198 | printf("Arbre fini \n"); |
199 | + test_erreur(Arbre); | |
195 | 200 | detruire_arbre(&Arbre); |
196 | - affichage_arbre(Arbre); | |
197 | - test_erreur(); | |
201 | + //affichage_arbre(Arbre); | |
202 | + | |
198 | 203 | return 0; |
199 | 204 | } | ... | ... |