Commit efd96bef3ad67d0e371e091899778d8728c5e129

Authored by mclaudel
1 parent ebd317c5

Projet modifié

Showing 1 changed file with 25 additions and 20 deletions   Show diff stats
@@ -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 }