From c2f3660b629ab610bd133b294ddc97f57832f987 Mon Sep 17 00:00:00 2001 From: Thorsieger Date: Sat, 4 May 2019 15:42:47 +0200 Subject: [PATCH] correction bug chiffre --- tree.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tree.c b/tree.c index ff2225d..9a4b5c0 100644 --- a/tree.c +++ b/tree.c @@ -81,17 +81,21 @@ void toLowerCase(wchar_t mot[]) void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) { + wchar_t *buffer; + wchar_t *token = wcstok(message, separateur, &buffer);//On découpe le mot selon les séparateurs + if(token == NULL)return; + //On récupére l'id de la première lettre dans notre dico int first_letter = -1; - if (message[0] >= 'a' && message[0] <= 'z') + if (token[0] >= 'a' && token[0] <= 'z') { - first_letter = (int)message[0] - 97; + first_letter = (int)token[0] - 97; } else { for (int i = 26; i < Dico->taille; i++)//On recherche si elle existe et qu'elle n'est pas de 'a' à 'z' { - if (Dico->tab_ptr_tree[i]->val == message[0]) + if (Dico->tab_ptr_tree[i]->val == token[0]) { first_letter = i; break; @@ -103,12 +107,10 @@ void splitcarac(dico *Dico, wchar_t message[], wchar_t separateur[]) Dico->taille++; 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 Dico->tab_ptr_tree[first_letter] = NULL; - cons_tree(&(Dico->tab_ptr_tree[first_letter]), message[0]); + cons_tree(&(Dico->tab_ptr_tree[first_letter]), token[0]); } } - wchar_t *buffer; - wchar_t *token = wcstok(message, separateur, &buffer);//On découpe le mot selon les séparateurs add(Dico->tab_ptr_tree, token, size(token), first_letter);//On ajoute le mot (jusqu'au séparateur) au dictionnaire if (buffer != NULL)splitcarac(Dico, buffer, separateur);//S'il reste des mots à ajouter on recommence } @@ -163,7 +165,6 @@ void free_dico(dico Dico) int find_mot(dico Dico, wchar_t mot[]) { if (mot == NULL)return 0; - if (mot[0] >= '0' && mot[0] <= '9')return 0; int fl = -1; if (mot[0] >= 'a' && mot[0] <= 'z') @@ -189,7 +190,7 @@ int find_mot(dico Dico, wchar_t mot[]) if (Dico.tab_ptr_tree[fl]->fin == 0)return 1; else return 0; //vrais } - if (taille == 1 && Dico.tab_ptr_tree[fl] == NULL)return 1; //faux + if (Dico.tab_ptr_tree[fl] == NULL)return 1; //faux struct node *ptr_node = Dico.tab_ptr_tree[fl]; for (int i = 1; i < taille; i++) -- libgit2 0.21.2