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,17 +81,21 @@ void toLowerCase(wchar_t mot[]) | ||
81 | void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) | 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 | //On récupére l'id de la première lettre dans notre dico | 88 | //On récupére l'id de la première lettre dans notre dico |
85 | int first_letter = -1; | 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 | else | 94 | else |
91 | { | 95 | { |
92 | for (int i = 26; i < Dico->taille; i++)//On recherche si elle existe et qu'elle n'est pas de 'a' à 'z' | 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 | first_letter = i; | 100 | first_letter = i; |
97 | break; | 101 | break; |
@@ -103,12 +107,10 @@ void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) | @@ -103,12 +107,10 @@ void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) | ||
103 | Dico->taille++; | 107 | Dico->taille++; |
104 | 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 | 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 | Dico->tab_ptr_tree[first_letter] = NULL; | 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 | add(Dico->tab_ptr_tree, token, size(token), first_letter);//On ajoute le mot (jusqu'au séparateur) au dictionnaire | 114 | add(Dico->tab_ptr_tree, token, size(token), first_letter);//On ajoute le mot (jusqu'au séparateur) au dictionnaire |
113 | if (buffer != NULL)splitcarac(Dico, buffer, separateur);//S'il reste des mots à ajouter on recommence | 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,7 +165,6 @@ void free_dico(dico Dico) | ||
163 | int find_mot(dico Dico, wchar_t mot[]) | 165 | int find_mot(dico Dico, wchar_t mot[]) |
164 | { | 166 | { |
165 | if (mot == NULL)return 0; | 167 | if (mot == NULL)return 0; |
166 | - if (mot[0] >= '0' && mot[0] <= '9')return 0; | ||
167 | 168 | ||
168 | int fl = -1; | 169 | int fl = -1; |
169 | if (mot[0] >= 'a' && mot[0] <= 'z') | 170 | if (mot[0] >= 'a' && mot[0] <= 'z') |
@@ -189,7 +190,7 @@ int find_mot(dico Dico, wchar_t mot[]) | @@ -189,7 +190,7 @@ int find_mot(dico Dico, wchar_t mot[]) | ||
189 | if (Dico.tab_ptr_tree[fl]->fin == 0)return 1; | 190 | if (Dico.tab_ptr_tree[fl]->fin == 0)return 1; |
190 | else return 0; //vrais | 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 | struct node *ptr_node = Dico.tab_ptr_tree[fl]; | 195 | struct node *ptr_node = Dico.tab_ptr_tree[fl]; |
195 | for (int i = 1; i < taille; i++) | 196 | for (int i = 1; i < taille; i++) |