Commit 0aa091e733d47f2884ba5d33b25a634b96c0750d
1 parent
ef5eea94
Algorithme modifié
Showing
1 changed file
with
18 additions
and
13 deletions
Show diff stats
correcteur.c
... | ... | @@ -66,11 +66,10 @@ void ajout_alphab(Node ** pn, char * mot,int cpt) |
66 | 66 | Node * tmp= *pn; |
67 | 67 | char lettre=mot[cpt]; |
68 | 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';*/ | |
69 | + | |
72 | 70 | pos=lettre; |
73 | - if (lettre == '\0'){ | |
71 | + if (lettre>='A' && lettre <= 'Z') pos =lettre -'A'+'a'; | |
72 | + if (lettre == '\0' || pos == 44 || pos == 46){ | |
74 | 73 | (*tmp).fin_de_mot=1; |
75 | 74 | return; |
76 | 75 | } |
... | ... | @@ -153,35 +152,41 @@ void initialisation(Node ** Arbre){ |
153 | 152 | |
154 | 153 | |
155 | 154 | |
156 | -void comparaison(Node ** pn, char * mot,int cpt) | |
155 | +int comparaison(Node ** pn, char * mot,int cpt,int * erreur) | |
157 | 156 | { |
158 | 157 | char lettre=mot[cpt]; |
159 | 158 | int pos = lettre ; |
159 | + if (lettre>='A' && lettre <= 'Z') pos =lettre -'A'+'a'; | |
160 | 160 | cpt++; |
161 | - if (lettre == '\0'){ | |
161 | + if (lettre == '\0' || pos == 44 || pos == 46){ | |
162 | 162 | if((*pn)->fin_de_mot==0){ |
163 | - printf("1 erreur \n"); | |
163 | + (*erreur)++; | |
164 | 164 | } |
165 | 165 | |
166 | - return ; | |
166 | + return (*erreur); | |
167 | 167 | } |
168 | + if (lettre == '?' || lettre == '!' || lettre == ':' || lettre == ';') return 0; | |
168 | 169 | if ((*pn)->lettres[pos] == NULL) { |
169 | - printf("1 erreur \n"); | |
170 | - return; | |
170 | + (*erreur)++; | |
171 | + return (*erreur); | |
171 | 172 | } |
172 | - return comparaison(&(*pn)->lettres[pos],mot,cpt); | |
173 | + return comparaison(&(*pn)->lettres[pos],mot,cpt,erreur); | |
173 | 174 | |
174 | 175 | |
175 | 176 | } |
176 | 177 | |
177 | 178 | void test_erreur(Node * Dico){ |
178 | 179 | FILE * texte; |
180 | + int * erreur=malloc(sizeof(int)); | |
181 | + (*erreur)=0; | |
179 | 182 | char mot[MAX_LETTRES]; |
180 | 183 | texte = fopen("test.txt","r"); |
181 | 184 | int i; |
182 | 185 | while ((i = fscanf(texte,"%s",mot)) == 1){ |
183 | - comparaison(&Dico,mot,0); | |
186 | + (*erreur)=comparaison(&Dico,mot,0,erreur); | |
184 | 187 | } |
188 | + if ((*erreur)==0 || (*erreur)==1 ) printf("%d erreur",(*erreur)); | |
189 | + else printf("%d erreurs",(*erreur)); | |
185 | 190 | fclose(texte); |
186 | 191 | } |
187 | 192 | |
... | ... | @@ -194,7 +199,7 @@ int main(){ |
194 | 199 | Node * Arbre; |
195 | 200 | initialisation(&Arbre); |
196 | 201 | charger_arbre(&Arbre); |
197 | - affichage_arbre(Arbre); | |
202 | + //affichage_arbre(Arbre); | |
198 | 203 | printf("Arbre fini \n"); |
199 | 204 | test_erreur(Arbre); |
200 | 205 | detruire_arbre(&Arbre); | ... | ... |