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,7 +4,7 @@ | ||
4 | #include <string.h> | 4 | #include <string.h> |
5 | 5 | ||
6 | #define MAX_LETTRES 30 | 6 | #define MAX_LETTRES 30 |
7 | -#define size 26 | 7 | +#define size 255 |
8 | 8 | ||
9 | 9 | ||
10 | typedef struct node { | 10 | typedef struct node { |
@@ -64,19 +64,20 @@ void ajout(Node **N, char lettre) | @@ -64,19 +64,20 @@ void ajout(Node **N, char lettre) | ||
64 | void ajout_alphab(Node ** pn, char * mot,int cpt) | 64 | void ajout_alphab(Node ** pn, char * mot,int cpt) |
65 | { | 65 | { |
66 | Node * tmp= *pn; | 66 | Node * tmp= *pn; |
67 | - //printf("%d \n",cpt); | ||
68 | char lettre=mot[cpt]; | 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 | if (lettre == '\0'){ | 73 | if (lettre == '\0'){ |
73 | (*tmp).fin_de_mot=1; | 74 | (*tmp).fin_de_mot=1; |
74 | return; | 75 | return; |
75 | } | 76 | } |
76 | if (tmp->lettres[pos] == NULL) { | 77 | if (tmp->lettres[pos] == NULL) { |
77 | - //printf("Rentré \n"); | ||
78 | ajout(&tmp->lettres[pos],lettre); | 78 | ajout(&tmp->lettres[pos],lettre); |
79 | } | 79 | } |
80 | + cpt++; | ||
80 | return ajout_alphab(&tmp->lettres[pos],mot,cpt); | 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,7 +91,7 @@ void ajout_alphab(Node ** pn, char * mot,int cpt) | ||
90 | Node * charger_arbre(Node ** Arbre){ | 91 | Node * charger_arbre(Node ** Arbre){ |
91 | FILE * dico; | 92 | FILE * dico; |
92 | char mot[MAX_LETTRES]; | 93 | char mot[MAX_LETTRES]; |
93 | - dico = fopen("test.txt","r"); | 94 | + dico = fopen("words.txt","r"); |
94 | int i; | 95 | int i; |
95 | while ((i = fscanf(dico,"%s",mot)) == 1){ | 96 | while ((i = fscanf(dico,"%s",mot)) == 1){ |
96 | ajout_alphab(Arbre,mot,0); | 97 | ajout_alphab(Arbre,mot,0); |
@@ -143,6 +144,7 @@ void detruire_arbre(Node ** Arbre) | @@ -143,6 +144,7 @@ void detruire_arbre(Node ** Arbre) | ||
143 | void initialisation(Node ** Arbre){ | 144 | void initialisation(Node ** Arbre){ |
144 | Node *nouveau = malloc(sizeof(struct node)); | 145 | Node *nouveau = malloc(sizeof(struct node)); |
145 | (*nouveau).l='?'; | 146 | (*nouveau).l='?'; |
147 | + (*nouveau).fin_de_mot=0; | ||
146 | for (int i=0; i<size; i++) nouveau->lettres[i] = NULL; | 148 | for (int i=0; i<size; i++) nouveau->lettres[i] = NULL; |
147 | *Arbre = nouveau;} | 149 | *Arbre = nouveau;} |
148 | 150 | ||
@@ -151,29 +153,31 @@ void initialisation(Node ** Arbre){ | @@ -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 | char lettre=mot[cpt]; | 158 | char lettre=mot[cpt]; |
157 | - int pos = lettre - 'a'; | 159 | + int pos = lettre ; |
158 | cpt++; | 160 | cpt++; |
159 | if (lettre == '\0'){ | 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 | FILE * texte; | 178 | FILE * texte; |
175 | char mot[MAX_LETTRES]; | 179 | char mot[MAX_LETTRES]; |
176 | - texte = fopen("texte.txt","r"); | 180 | + texte = fopen("test.txt","r"); |
177 | int i; | 181 | int i; |
178 | while ((i = fscanf(texte,"%s",mot)) == 1){ | 182 | while ((i = fscanf(texte,"%s",mot)) == 1){ |
179 | comparaison(&Dico,mot,0); | 183 | comparaison(&Dico,mot,0); |
@@ -192,8 +196,9 @@ int main(){ | @@ -192,8 +196,9 @@ int main(){ | ||
192 | charger_arbre(&Arbre); | 196 | charger_arbre(&Arbre); |
193 | affichage_arbre(Arbre); | 197 | affichage_arbre(Arbre); |
194 | printf("Arbre fini \n"); | 198 | printf("Arbre fini \n"); |
199 | + test_erreur(Arbre); | ||
195 | detruire_arbre(&Arbre); | 200 | detruire_arbre(&Arbre); |
196 | - affichage_arbre(Arbre); | ||
197 | - test_erreur(); | 201 | + //affichage_arbre(Arbre); |
202 | + | ||
198 | return 0; | 203 | return 0; |
199 | } | 204 | } |