Commit c2f3660b629ab610bd133b294ddc97f57832f987

Authored by Thorsieger
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++)
... ...