Commit efd96bef3ad67d0e371e091899778d8728c5e129

Authored by mclaudel
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 }
... ...