Commit c2f3660b629ab610bd133b294ddc97f57832f987
1 parent
df266b37
correction bug chiffre
Showing
1 changed file
with
9 additions
and
8 deletions
Show diff stats
... | ... | @@ -81,17 +81,21 @@ void toLowerCase(wchar_t mot[]) |
81 | 81 | void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) |
82 | 82 | { |
83 | 83 | |
84 | + wchar_t *buffer; | |
85 | + wchar_t *token = wcstok(message, separateur, &buffer);//On découpe le mot selon les séparateurs | |
86 | + if(token == NULL)return; | |
87 | + | |
84 | 88 | //On récupére l'id de la première lettre dans notre dico |
85 | 89 | int first_letter = -1; |
86 | - if (message[0] >= 'a' && message[0] <= 'z') | |
90 | + if (token[0] >= 'a' && token[0] <= 'z') | |
87 | 91 | { |
88 | - first_letter = (int)message[0] - 97; | |
92 | + first_letter = (int)token[0] - 97; | |
89 | 93 | } |
90 | 94 | else |
91 | 95 | { |
92 | 96 | for (int i = 26; i < Dico->taille; i++)//On recherche si elle existe et qu'elle n'est pas de 'a' à 'z' |
93 | 97 | { |
94 | - if (Dico->tab_ptr_tree[i]->val == message[0]) | |
98 | + if (Dico->tab_ptr_tree[i]->val == token[0]) | |
95 | 99 | { |
96 | 100 | first_letter = i; |
97 | 101 | break; |
... | ... | @@ -103,12 +107,10 @@ void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) |
103 | 107 | Dico->taille++; |
104 | 108 | Dico->tab_ptr_tree = realloc(Dico->tab_ptr_tree, (Dico->taille) * sizeof(struct node *));//On laisse la place pour ajouter une première lettre de mot |
105 | 109 | Dico->tab_ptr_tree[first_letter] = NULL; |
106 | - cons_tree(&(Dico->tab_ptr_tree[first_letter]), message[0]); | |
110 | + cons_tree(&(Dico->tab_ptr_tree[first_letter]), token[0]); | |
107 | 111 | } |
108 | 112 | } |
109 | 113 | |
110 | - wchar_t *buffer; | |
111 | - wchar_t *token = wcstok(message, separateur, &buffer);//On découpe le mot selon les séparateurs | |
112 | 114 | add(Dico->tab_ptr_tree, token, size(token), first_letter);//On ajoute le mot (jusqu'au séparateur) au dictionnaire |
113 | 115 | if (buffer != NULL)splitcarac(Dico, buffer, separateur);//S'il reste des mots à ajouter on recommence |
114 | 116 | } |
... | ... | @@ -163,7 +165,6 @@ void free_dico(dico Dico) |
163 | 165 | int find_mot(dico Dico, wchar_t mot[]) |
164 | 166 | { |
165 | 167 | if (mot == NULL)return 0; |
166 | - if (mot[0] >= '0' && mot[0] <= '9')return 0; | |
167 | 168 | |
168 | 169 | int fl = -1; |
169 | 170 | if (mot[0] >= 'a' && mot[0] <= 'z') |
... | ... | @@ -189,7 +190,7 @@ int find_mot(dico Dico, wchar_t mot[]) |
189 | 190 | if (Dico.tab_ptr_tree[fl]->fin == 0)return 1; |
190 | 191 | else return 0; //vrais |
191 | 192 | } |
192 | - if (taille == 1 && Dico.tab_ptr_tree[fl] == NULL)return 1; //faux | |
193 | + if (Dico.tab_ptr_tree[fl] == NULL)return 1; //faux | |
193 | 194 | |
194 | 195 | struct node *ptr_node = Dico.tab_ptr_tree[fl]; |
195 | 196 | for (int i = 1; i < taille; i++) |
... | ... |