Commit 76ac53a3bb85972b1ac9599ae5c73f54cdfdc1b6
1 parent
81b54ede
Test version avec accents
Showing
10 changed files
with
393 additions
and
78 deletions
Show diff stats
dico.txt
dico2.txt
1 | 1 | Aachen |
2 | 2 | Aaliyah |
3 | -Aaliyah | |
4 | 3 | Aaron |
5 | 4 | Abbas |
6 | 5 | Abbasid |
7 | 6 | Abbott |
8 | -Abbott | |
9 | 7 | Abby |
10 | -Abby | |
11 | 8 | Abdul |
12 | -Abdul | |
13 | -Abe | |
14 | -Abe | |
15 | -Abel | |
9 | +Abé | |
16 | 10 | Abel |
17 | 11 | Abelard |
18 | -Abelson | |
19 | 12 | Abelson |
20 | -Aberdeen | |
21 | 13 | Aberdeen |
22 | -Abernathy | |
23 | 14 | Abernathy |
24 | -Abidjan | |
25 | 15 | Abidjan |
26 | 16 | Abigail |
27 | 17 | Abilene |
28 | -Abner | |
29 | 18 | Abner |
30 | -Abraham | |
31 | 19 | Abraham |
32 | -Abram | |
33 | 20 | Abram |
34 | 21 | Abrams |
35 | 22 | Absalom |
36 | 23 | Abuja |
37 | -Abyssinia | |
38 | 24 | Abyssinia |
39 | -Abyssinian | |
40 | 25 | Abyssinian |
41 | -Ac | |
42 | 26 | Ac |
43 | -Acadia | |
44 | 27 | Acadia |
45 | 28 | Acapulco |
46 | -Acapulco | |
47 | 29 | Accenture |
48 | -Accenture | |
49 | 30 | Accra |
50 | -Accra | |
51 | 31 | Acevedo |
52 | -Acevedo | |
53 | -Achaean | |
54 | 32 | Achaean |
55 | -Achebe | |
56 | 33 | Achebe |
57 | 34 | Achernar |
58 | -Acheson | |
59 | 35 | Acheson |
60 | 36 | Achilles |
61 | -Achilles | |
62 | -Aconcagua | |
63 | 37 | Aconcagua |
64 | 38 | Acosta |
65 | -Acosta | |
66 | 39 | Acropolis |
67 | 40 | Acrux |
68 | -Acrux | |
69 | 41 | Actaeon |
70 | 42 | Acton |
71 | 43 | Acts |
72 | -Acuff | |
73 | 44 | Acuff |
74 | -Ada | |
75 | 45 | Ada |
76 | -Adam | |
77 | 46 | Adam |
78 | 47 | Adams |
79 | 48 | Adan |
80 | -Adan | |
81 | 49 | Adana |
82 | 50 | Adar |
83 | -Adar | |
84 | 51 | Addams |
85 | 52 | Adderley |
86 | 53 | Adderley |
... | ... | @@ -92607,7 +92574,7 @@ tropic |
92607 | 92574 | tropic |
92608 | 92575 | tropical |
92609 | 92576 | tropics |
92610 | -tropics | |
92577 | +trôpics | |
92611 | 92578 | tropism |
92612 | 92579 | tropism |
92613 | 92580 | tropisms | ... | ... |
projet1.c
... | ... | @@ -186,8 +186,8 @@ int main(int argc, char* argv[]) { |
186 | 186 | } |
187 | 187 | initialisation_tab_arbre(tab_arbre); |
188 | 188 | remplir_dico(dico, tab_arbre); //on suppose qu'il n'y a pas d'accents dans le dictionnaire |
189 | - correction_txt(txt, tab_arbre); | |
190 | - correction_mot(tab_arbre); | |
189 | + correction_txt(txt, tab_arbre); // correction d'un fichier texte | |
190 | + correction_mot(tab_arbre); // correction d'un mot ou d'une phrase entrée par l'utilisateur | |
191 | 191 | |
192 | 192 | return 0; |
193 | 193 | } | ... | ... |
projetfinal.c
1 | 1 | #include <stdio.h> |
2 | 2 | #include <stdlib.h> |
3 | 3 | |
4 | -#define A 27 | |
4 | +#define A 26 | |
5 | 5 | |
6 | 6 | struct node { |
7 | 7 | char lettre; |
... | ... | @@ -21,12 +21,10 @@ void lien_listeFils(struct cell** pL) { |
21 | 21 | } |
22 | 22 | |
23 | 23 | void initialisation_tab_arbre(struct node tab[]) { |
24 | - for(int i = 0; i < A-1; i++) { | |
24 | + for(int i = 0; i < A; i++) { | |
25 | 25 | tab[i].lettre = 97+i; //ajout lettres minuscules |
26 | 26 | tab[i].listeFils = NULL; |
27 | 27 | } |
28 | - tab[A-1].lettre = 39; | |
29 | - tab[A-1].listeFils = NULL; | |
30 | 28 | } |
31 | 29 | |
32 | 30 | void ajout_tete(char elem, struct cell** pL) { |
... | ... | @@ -58,8 +56,9 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { |
58 | 56 | struct cell** localisationArbre = NULL; |
59 | 57 | int cptmot = 0; |
60 | 58 | char motLu[50]; |
61 | - while(fscanf(fd, "%s", motLu)==1) { | |
62 | - int i = 0; | |
59 | + while(fscanf(fd, "%s", motLu)==1) { | |
60 | + int charEstUneLettre = 1; | |
61 | + int i = 0; | |
63 | 62 | cptmot += 1; |
64 | 63 | if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { |
65 | 64 | localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; |
... | ... | @@ -67,27 +66,19 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { |
67 | 66 | else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { |
68 | 67 | localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; |
69 | 68 | } |
70 | - | |
71 | - else if(motLu[0] == 39) { | |
72 | - localisationArbre = &tab_arbre_prcp[A].listeFils; //A = derniere case du tab | |
73 | - } | |
74 | 69 | else { |
75 | - printf("Erreur remplissage dico : L'un des caractères n'est pas une lettre\n"); | |
76 | - return; | |
70 | + printf("Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n"); | |
71 | + printf("Mot : %s incorrect\n", motLu); | |
72 | + charEstUneLettre = 0; | |
77 | 73 | } |
78 | - while(motLu[i] != '\0') { | |
79 | - i += 1; | |
80 | - //printf("lettre lue : %c address : %p\n", motLu[i], localisationArbre); | |
81 | - localisationArbre = insertion(motLu[i], localisationArbre); | |
82 | - //printf("tab_arbre[%d].listeFils : %p\n", i, tab_arbre_prcp[i].listeFils); | |
83 | - /*printf("localisationArbre.lettre : %c\n", (*localisationArbre)->arbre->lettre); | |
84 | - printf("localisation apres : %p\n", localisationArbre);*/ | |
85 | - //printf("\n"); | |
86 | - } | |
87 | - } | |
74 | + while((motLu[i] != '\0') && (charEstUneLettre == 1)) { | |
75 | + i += 1; | |
76 | + localisationArbre = insertion(motLu[i], localisationArbre); | |
77 | + } | |
78 | + } | |
88 | 79 | printf("\n"); |
89 | 80 | fclose(fd); |
90 | - printf("%d mots inseres dans le dictionnaire.\n", cptmot); | |
81 | + printf("%d mots inseres dans le dictionnaire.\n", cptmot); | |
91 | 82 | } |
92 | 83 | |
93 | 84 | struct cell** test_mot(char mot, struct cell** localisation, int* verif) { |
... | ... | @@ -117,13 +108,9 @@ void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) { |
117 | 108 | else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { |
118 | 109 | localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; |
119 | 110 | } |
120 | - | |
121 | - else if(motLu[0] == 39) { | |
122 | - localisationArbre = &tab_arbre_prcp[A].listeFils; //A = derniere case du tab | |
123 | - } | |
124 | 111 | else { |
125 | - printf("Erreur correction txt : L'un des caractères n'est pas une lettre\n"); | |
126 | - return; | |
112 | + printf("Erreur correction txt : L'un des caracteres n'est pas une lettre\n"); | |
113 | + verif = 0; | |
127 | 114 | } |
128 | 115 | while((verif == 1) && (motLu[i] != '\0')) { |
129 | 116 | i += 1; |
... | ... | @@ -149,13 +136,9 @@ void correction_mot(struct node tab_arbre_prcp[]) { |
149 | 136 | else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { |
150 | 137 | localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; |
151 | 138 | } |
152 | - | |
153 | - else if(motLu[0] == 39) { | |
154 | - localisationArbre = &tab_arbre_prcp[A].listeFils; //A = derniere case du tab | |
155 | - } | |
156 | 139 | else { |
157 | - printf("Erreur correction txt : L'un des caractères n'est pas une lettre\n"); | |
158 | - return; | |
140 | + printf("Erreur correction txt : L'un des caracteres n'est pas une lettre\n"); | |
141 | + verif = 0; | |
159 | 142 | } |
160 | 143 | while((verif == 1) && (motLu[i] != '\0')) { |
161 | 144 | i += 1; | ... | ... |
No preview for this file type
... | ... | @@ -0,0 +1,185 @@ |
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include <wchar.h> | |
4 | +#include <locale.h> | |
5 | + | |
6 | +#define A 26 | |
7 | + | |
8 | +struct node { | |
9 | + wchar_t lettre; | |
10 | + struct cell* listeFils; | |
11 | +}; | |
12 | + | |
13 | +struct cell { | |
14 | + struct node* arbre; | |
15 | + struct cell* arbreSuivant; | |
16 | +}; | |
17 | + | |
18 | +void lien_listeFils(struct cell** pL) { | |
19 | + struct cell* p; | |
20 | + p = malloc(sizeof(struct cell)); | |
21 | + | |
22 | + (*pL)->arbre->listeFils = p; | |
23 | +} | |
24 | + | |
25 | +void initialisation_tab_arbre(struct node tab[]) { | |
26 | + for(int i = 0; i < A; i++) { | |
27 | + tab[i].lettre = 97+i; //ajout lettres minuscules | |
28 | + tab[i].listeFils = NULL; | |
29 | + } | |
30 | +} | |
31 | + | |
32 | +void ajout_tete(wchar_t elem, struct cell** pL) { | |
33 | + struct cell* p; | |
34 | + p = malloc(sizeof(struct cell)); | |
35 | + p->arbre = malloc(sizeof(struct node)); | |
36 | + p->arbre->listeFils = NULL; | |
37 | + p->arbre->lettre = elem; | |
38 | + p->arbreSuivant = *pL; | |
39 | + *pL = p; | |
40 | +} | |
41 | + | |
42 | +struct cell ** insertion(wchar_t elem, struct cell** pL) { | |
43 | + if(((*pL) == NULL) || ((*pL)->arbre->lettre > elem)) { | |
44 | + ajout_tete(elem, pL); | |
45 | + return &(*pL)->arbre->listeFils; | |
46 | + } | |
47 | + else if((*pL)->arbre->lettre == elem) { | |
48 | + return &(*pL)->arbre->listeFils; | |
49 | + } | |
50 | + else { | |
51 | + return insertion(elem, &(*pL)->arbreSuivant); | |
52 | + } | |
53 | +} | |
54 | + | |
55 | + | |
56 | +void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { | |
57 | + | |
58 | + struct cell** localisationArbre = NULL; | |
59 | + int cptmot = 0; | |
60 | + wchar_t motLu[50]; | |
61 | + while(fwscanf(fd, L"%ls", motLu)==1) { | |
62 | + wprintf(L"mot lu : %ls\n", motLu); | |
63 | + int wchar_tEstUneLettre = 1; | |
64 | + int i = 0; | |
65 | + cptmot += 1; | |
66 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
67 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
68 | + } | |
69 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
70 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
71 | + } | |
72 | + else { | |
73 | + wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n"); | |
74 | + wprintf(L"Mot : %ls incorrect\n", motLu); | |
75 | + wchar_tEstUneLettre = 0; | |
76 | + } | |
77 | + while((motLu[i] != '\0') && (wchar_tEstUneLettre == 1)) { | |
78 | + i += 1; | |
79 | + wprintf(L"lettre lue %ld\n", motLu[i]); | |
80 | + localisationArbre = insertion(motLu[i], localisationArbre); | |
81 | + } | |
82 | + } | |
83 | + wprintf(L"\n"); | |
84 | + fclose(fd); | |
85 | + wprintf(L"%d mots inseres dans le dictionnaire.\n", cptmot); | |
86 | +} | |
87 | + | |
88 | +struct cell** test_mot(wchar_t mot, struct cell** localisation, int* verif) { | |
89 | + | |
90 | + if((*localisation == NULL) || (*localisation)->arbre->lettre > mot) { | |
91 | + *verif = 0; | |
92 | + return NULL; | |
93 | + } | |
94 | + if((*localisation)->arbre->lettre == mot) { | |
95 | + return &(*localisation)->arbre->listeFils; | |
96 | + } | |
97 | + else { | |
98 | + return test_mot(mot, &(*localisation)->arbreSuivant, verif); | |
99 | + } | |
100 | +} | |
101 | + | |
102 | +void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) { | |
103 | + struct cell** localisationArbre = NULL; | |
104 | + int verif; | |
105 | + wchar_t motLu[50]; | |
106 | + while(fwscanf(fd, L"%ls", motLu)==1) { | |
107 | + verif = 1; | |
108 | + int i = 0; | |
109 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
110 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
111 | + } | |
112 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
113 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
114 | + } | |
115 | + else { | |
116 | + wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n"); | |
117 | + verif = 0; | |
118 | + } | |
119 | + while((verif == 1) && (motLu[i] != '\0')) { | |
120 | + wprintf(L"mot lu : %ls\n", motLu); | |
121 | + i += 1; | |
122 | + localisationArbre = test_mot(motLu[i], localisationArbre, &verif); | |
123 | + wprintf(L"lettre lue %ld\n", motLu[i]); | |
124 | + } | |
125 | + wprintf(L"\n"); | |
126 | + if(verif == 0) wprintf(L"Mot %ls non present dans le dicitonnaire.\n", motLu); | |
127 | + } | |
128 | + fclose(fd); | |
129 | +} | |
130 | + | |
131 | +void correction_mot(struct node tab_arbre_prcp[]) { | |
132 | + struct cell** localisationArbre = NULL; | |
133 | + int verif; | |
134 | + wchar_t motLu[50]; | |
135 | + wprintf(L"Entrez un mot ou une phrase a corriger : \n(0 pour quitter)\n"); | |
136 | + while(wscanf(L"%ls", motLu)==1) { | |
137 | + if(motLu[0]=='0') return; | |
138 | + verif = 1; | |
139 | + int i = 0; | |
140 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
141 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
142 | + } | |
143 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
144 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
145 | + } | |
146 | + else { | |
147 | + wprintf(L"Erreur correction txt : L'un des caract%lcres n'est pas une lettre\n", 130); | |
148 | + verif = 0; | |
149 | + } | |
150 | + while((verif == 1) && (motLu[i] != '\0')) { | |
151 | + i += 1; | |
152 | + wprintf(L"lettre lue %ld\n", motLu[i]); | |
153 | + localisationArbre = test_mot(motLu[i], localisationArbre, &verif); | |
154 | + } | |
155 | + if(verif == 0) wprintf(L"Mot : %ls non present dans le dicitonnaire.\n", motLu); | |
156 | + else wprintf(L"Mot : %ls correct\n", motLu); | |
157 | + } | |
158 | +} | |
159 | + | |
160 | + | |
161 | +int main(int argc, char* argv[]) { | |
162 | + | |
163 | + FILE* dico = NULL; | |
164 | + FILE* txt = NULL; | |
165 | + struct node tab_arbre[A]; | |
166 | + | |
167 | + if(argc>2) { | |
168 | + dico = fopen(argv[1], "r"); | |
169 | + txt = fopen(argv[2], "r"); | |
170 | + } | |
171 | + else { | |
172 | + dico = NULL; | |
173 | + txt = NULL; | |
174 | + } | |
175 | + if ((dico == NULL) || (txt == NULL)) { | |
176 | + wprintf(L"Erreur : il manque un ou plusieurs fichiers !\n"); | |
177 | + return 1; | |
178 | + } | |
179 | + initialisation_tab_arbre(tab_arbre); | |
180 | + remplir_dico(dico, tab_arbre); //on suppose qu'il n'y a pas d'accents dans le dictionnaire | |
181 | + correction_txt(txt, tab_arbre); | |
182 | + correction_mot(tab_arbre); | |
183 | + | |
184 | + return 0; | |
185 | +} | ... | ... |
... | ... | @@ -0,0 +1,179 @@ |
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include <wchar.h> | |
4 | + | |
5 | +#define A 26 | |
6 | + | |
7 | +struct node { | |
8 | + wchar_t lettre; | |
9 | + struct cell* listeFils; | |
10 | +}; | |
11 | + | |
12 | +struct cell { | |
13 | + struct node* arbre; | |
14 | + struct cell* arbreSuivant; | |
15 | +}; | |
16 | + | |
17 | +void lien_listeFils(struct cell** pL) { | |
18 | + struct cell* p; | |
19 | + p = (struct cell*)malloc(sizeof(struct cell)); | |
20 | + | |
21 | + (*pL)->arbre->listeFils = p; | |
22 | +} | |
23 | + | |
24 | +void initialisation_tab_arbre(struct node tab[]) { | |
25 | + for(int i = 0; i < A; i++) { | |
26 | + tab[i].lettre = 97+i; //ajout lettres minuscules | |
27 | + tab[i].listeFils = NULL; | |
28 | + } | |
29 | +} | |
30 | + | |
31 | +void ajout_tete(wchar_t elem, struct cell** pL) { | |
32 | + struct cell* p; | |
33 | + p = (struct cell*)malloc(sizeof(struct cell)); | |
34 | + p->arbre = (struct node*)malloc(sizeof(struct node)); | |
35 | + p->arbre->listeFils = NULL; | |
36 | + p->arbre->lettre = elem; | |
37 | + p->arbreSuivant = *pL; | |
38 | + *pL = p; | |
39 | +} | |
40 | + | |
41 | +struct cell ** insertion(wchar_t elem, struct cell** pL) { | |
42 | + if(((*pL) == NULL) || ((*pL)->arbre->lettre > elem)) { | |
43 | + ajout_tete(elem, pL); | |
44 | + return &(*pL)->arbre->listeFils; | |
45 | + } | |
46 | + else if((*pL)->arbre->lettre == elem) { | |
47 | + return &(*pL)->arbre->listeFils; | |
48 | + } | |
49 | + else { | |
50 | + return insertion(elem, &(*pL)->arbreSuivant); | |
51 | + } | |
52 | +} | |
53 | + | |
54 | + | |
55 | +void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { | |
56 | + | |
57 | + struct cell** localisationArbre = NULL; | |
58 | + int cptmot = 0; | |
59 | + wchar_t motLu[50]; | |
60 | + while(fwscanf(fd, L"%ls", motLu)==1) { | |
61 | + wprintf(L"mot lu : %ls\n", motLu); | |
62 | + int wchar_tEstUneLettre = 1; | |
63 | + int i = 0; | |
64 | + cptmot += 1; | |
65 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
66 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
67 | + } | |
68 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
69 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
70 | + } | |
71 | + else { | |
72 | + wprintf(L"Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n"); | |
73 | + wprintf(L"Mot : %ls incorrect\n", motLu); | |
74 | + wchar_tEstUneLettre = 0; | |
75 | + } | |
76 | + while((motLu[i] != '\0') && (wchar_tEstUneLettre == 1)) { | |
77 | + i += 1; | |
78 | + wprintf(L"lettre lue %ld\n", motLu[i]); | |
79 | + localisationArbre = insertion(motLu[i], localisationArbre); | |
80 | + } | |
81 | + } | |
82 | + wprintf(L"\n"); | |
83 | + fclose(fd); | |
84 | + wprintf(L"%d mots inseres dans le dictionnaire.\n", cptmot); | |
85 | +} | |
86 | + | |
87 | +struct cell** test_mot(wchar_t mot, struct cell** localisation, int* verif) { | |
88 | + | |
89 | + if((*localisation == NULL) || (*localisation)->arbre->lettre > mot) { | |
90 | + *verif = 0; | |
91 | + return NULL; | |
92 | + } | |
93 | + if((*localisation)->arbre->lettre == mot) { | |
94 | + return &(*localisation)->arbre->listeFils; | |
95 | + } | |
96 | + else { | |
97 | + return test_mot(mot, &(*localisation)->arbreSuivant, verif); | |
98 | + } | |
99 | +} | |
100 | + | |
101 | +void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) { | |
102 | + struct cell** localisationArbre = NULL; | |
103 | + int verif; | |
104 | + wchar_t motLu[50]; | |
105 | + while(fwscanf(fd, L"%ls", motLu)==1) { | |
106 | + verif = 1; | |
107 | + int i = 0; | |
108 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
109 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
110 | + } | |
111 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
112 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
113 | + } | |
114 | + else { | |
115 | + wprintf(L"Erreur correction txt : L'un des caracteres n'est pas une lettre\n"); | |
116 | + verif = 0; | |
117 | + } | |
118 | + while((verif == 1) && (motLu[i] != '\0')) { | |
119 | + i += 1; | |
120 | + localisationArbre = test_mot(motLu[i], localisationArbre, &verif); | |
121 | + } | |
122 | + if(verif == 0) wprintf(L"Mot %ls non present dans le dicitonnaire.\n", motLu); | |
123 | + } | |
124 | + fclose(fd); | |
125 | +} | |
126 | + | |
127 | +void correction_mot(struct node tab_arbre_prcp[]) { | |
128 | + struct cell** localisationArbre = NULL; | |
129 | + int verif; | |
130 | + wchar_t motLu[50]; | |
131 | + wprintf(L"Entrez un mot ou une phrase a corriger : \n(0 pour quitter)\n"); | |
132 | + while(wscanf(L"%ls", motLu)==1) { | |
133 | + if(motLu[0]=='0') return; | |
134 | + verif = 1; | |
135 | + int i = 0; | |
136 | + if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { | |
137 | + localisationArbre = &tab_arbre_prcp[motLu[0]-65].listeFils; | |
138 | + } | |
139 | + else if((motLu[0] >= 'a') && (motLu[0] <= 'z')) { | |
140 | + localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; | |
141 | + } | |
142 | + else { | |
143 | + wprintf(L"Erreur correction txt : L'un des caract%lcres n'est pas une lettre\n", 130); | |
144 | + verif = 0; | |
145 | + } | |
146 | + while((verif == 1) && (motLu[i] != '\0')) { | |
147 | + i += 1; | |
148 | + localisationArbre = test_mot(motLu[i], localisationArbre, &verif); | |
149 | + } | |
150 | + if(verif == 0) wprintf(L"Mot : %ls non present dans le dicitonnaire.\n", motLu); | |
151 | + else wprintf(L"Mot : %ls correct\n", motLu); | |
152 | + } | |
153 | +} | |
154 | + | |
155 | + | |
156 | +int main(int argc, char* argv[]) { | |
157 | + FILE* dico = NULL; | |
158 | + FILE* txt = NULL; | |
159 | + struct node tab_arbre[A]; | |
160 | + | |
161 | + if(argc>2) { | |
162 | + dico = fopen(argv[1], "r"); | |
163 | + txt = fopen(argv[2], "r"); | |
164 | + } | |
165 | + else { | |
166 | + dico = NULL; | |
167 | + txt = NULL; | |
168 | + } | |
169 | + if ((dico == NULL) || (txt == NULL)) { | |
170 | + wprintf(L"Erreur : il manque un ou plusieurs fichiers !\n"); | |
171 | + return 1; | |
172 | + } | |
173 | + initialisation_tab_arbre(tab_arbre); | |
174 | + remplir_dico(dico, tab_arbre); //on suppose qu'il n'y a pas d'accents dans le dictionnaire | |
175 | + correction_txt(txt, tab_arbre); | |
176 | + correction_mot(tab_arbre); | |
177 | + | |
178 | + return 0; | |
179 | +} | ... | ... |
No preview for this file type
No preview for this file type