// -------------------------------------------------------- // Projet IMA3 2019 - Lecture d'une bibliothèque // Décompte du nombre de fautes d'orthographe dans un texte // Normand Quentin & Rouillé Guillaume // -------------------------------------------------------- // Initialisation des variables et inclusion des bibliothèques #include #include #include #define MAX 30 // taille maximale d'une chaîne lue dans un fichier #define NB_CARAC 27 // nombre de caractères différents pouvant être identifiés -> 89 avec accentués // Déclaration de la structure 'trie' ou 'arbre indexé', ainsi que des pointeurs associés typedef struct node* Node; typedef struct node { char letter; Node next[NB_CARAC]; bool endWord; }node; // Fonction permettant de savoir si la structure est vide bool is_empty_tree(Node Tree); // Fonction permettant de savoir si le tableau 'next' est un tableau de pointeurs NULL bool is_leaf(Node Tree); // Initialisation de la structure accueillant le dictionnaire void init_tree(Node* Tree); // Détermine l'indice de rangement dans le tableau 'next' du caractère 'letter' int find_caract_indice(char letter); // Ne fonctionne pas pour les caractères accentués // Fonction d'ajout d'un mot 'word' dans la structure 'tree' de type 'arbre indexé' void add_in_tree(Node Tree, char word[]); // Fonction qui détermine si le caractère est un caractère de fin de mot (espace, ',', ';', '.', etc..) bool is_end_caract(char letter); // Renvoi l'indice maximum du mot 'word' char max_index(char word[]); // Détermine si le mot 'word' est présent dans l'arbre indexé void scan_word(Node Tree, char word[], int* error); // Retourne 'true' si le mot 'word' est non accentué, 'false' sinon bool no_accent(char word[]); // Transmet les mots du texte à analyser à 'scan_word' void read_txt(FILE* fp, Node* Tree, int* error); // Transmet les mots de la biliothèque à 'add_in_tree' void read_lib(FILE* fp, Node* Tree); // A SUPPRIMER void print_tree(Node Tree, int index); // A SUPPRIMER int find_index(Node tree); // A SUPPRIMER void print_first(Node Tree); // Libère l'espace mémoire associé à l'arbre indexé void free_tree(Node* Tree);