Commit 685eb26fd3ad19083048ef762ceb68887cfa6681

Authored by tvieuble
1 parent 76ac53a3

ProjAccentV1.0

@@ -2,4 +2,5 @@ télé @@ -2,4 +2,5 @@ télé
2 pÛche 2 pÛche
3 vôtre 3 vôtre
4 pêche 4 pêche
5 -abricot  
6 \ No newline at end of file 5 \ No newline at end of file
  6 +abricot
  7 +l'arbre
7 \ No newline at end of file 8 \ No newline at end of file
@@ -57,7 +57,8 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { @@ -57,7 +57,8 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
57 int cptmot = 0; 57 int cptmot = 0;
58 char motLu[50]; 58 char motLu[50];
59 while(fscanf(fd, "%s", motLu)==1) { 59 while(fscanf(fd, "%s", motLu)==1) {
60 - int charEstUneLettre = 1; 60 + printf("mot lu : %s\n", motLu);
  61 + int estUneLettre = 1;
61 int i = 0; 62 int i = 0;
62 cptmot += 1; 63 cptmot += 1;
63 if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { 64 if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
@@ -69,10 +70,11 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { @@ -69,10 +70,11 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
69 else { 70 else {
70 printf("Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n"); 71 printf("Erreur remplissage dico : L'un des caracteres n'est pas une lettre\n");
71 printf("Mot : %s incorrect\n", motLu); 72 printf("Mot : %s incorrect\n", motLu);
72 - charEstUneLettre = 0; 73 + estUneLettre = 0;
73 } 74 }
74 - while((motLu[i] != '\0') && (charEstUneLettre == 1)) { 75 + while((motLu[i] != '\0') && (estUneLettre == 1)) {
75 i += 1; 76 i += 1;
  77 + printf("lettre lue %d\n", motLu[i]);
76 localisationArbre = insertion(motLu[i], localisationArbre); 78 localisationArbre = insertion(motLu[i], localisationArbre);
77 } 79 }
78 } 80 }
@@ -142,6 +144,7 @@ void correction_mot(struct node tab_arbre_prcp[]) { @@ -142,6 +144,7 @@ void correction_mot(struct node tab_arbre_prcp[]) {
142 } 144 }
143 while((verif == 1) && (motLu[i] != '\0')) { 145 while((verif == 1) && (motLu[i] != '\0')) {
144 i += 1; 146 i += 1;
  147 + printf("lettre lue %d\n", motLu[i]);
145 localisationArbre = test_mot(motLu[i], localisationArbre, &verif); 148 localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
146 } 149 }
147 if(verif == 0) printf("Mot : %s non present dans le dicitonnaire.\n", motLu); 150 if(verif == 0) printf("Mot : %s non present dans le dicitonnaire.\n", motLu);
projetfinal.exe
No preview for this file type
projetfinalwchar_t.c
1 #include <stdio.h> 1 #include <stdio.h>
2 #include <stdlib.h> 2 #include <stdlib.h>
3 -#include <wchar.h> 3 +#include <stddef.h>
4 #include <locale.h> 4 #include <locale.h>
5 5
6 #define A 26 6 #define A 26
@@ -52,6 +52,157 @@ struct cell ** insertion(wchar_t elem, struct cell** pL) { @@ -52,6 +52,157 @@ struct cell ** insertion(wchar_t elem, struct cell** pL) {
52 } 52 }
53 } 53 }
54 54
  55 +wchar_t conversion_accent(wchar_t lettre) { // Conversion Unicode -> ASCII 256
  56 + switch(lettre) {
  57 + case 192 : //À
  58 + lettre = 182;
  59 + break;
  60 + case 193 : //Á
  61 + lettre = 181;
  62 + break;
  63 + case 194 : //Â
  64 + lettre = 182;
  65 + break;
  66 + case 198 : //Æ
  67 + lettre = 146;
  68 + break;
  69 + case 199 : //Ç
  70 + lettre = 128;
  71 + break;
  72 + case 200 : //È
  73 + lettre = 212;
  74 + break;
  75 + case 201 : //É
  76 + lettre = 144;
  77 + break;
  78 + case 202 : //Ê
  79 + lettre = 210;
  80 + break;
  81 + case 203 : //Ë
  82 + lettre = 211;
  83 + break;
  84 + case 204 : //Ì
  85 + lettre = 141;
  86 + break;
  87 + case 205 : //Í
  88 + lettre = 214;
  89 + break;
  90 + case 206 : //Î
  91 + lettre = 215;
  92 + break;
  93 + case 207 : //Ï
  94 + lettre = 216;
  95 + break;
  96 + case 209 : //Ñ
  97 + lettre = 165;
  98 + break;
  99 + case 210 : //Ò
  100 + lettre = 227;
  101 + break;
  102 + case 211 : //Ó
  103 + lettre = 224;
  104 + break;
  105 + case 212 : //Ô
  106 + lettre = 226;
  107 + break;
  108 + /* case 140 : //Œ
  109 + lettre =
  110 + break;*/
  111 + case 217 : //Ù
  112 + lettre = 235;
  113 + break;
  114 + case 218 : //Ú
  115 + lettre = 233;
  116 + break;
  117 + case 219 : //Û
  118 + lettre = 234;
  119 + break;
  120 + case 220 : //Ü
  121 + lettre = 154;
  122 + break;
  123 + case 221 : //Ý
  124 + lettre = 237;
  125 + break;
  126 + /*case 159 : //Ÿ
  127 + lettre =
  128 + break;*/
  129 + case 224 : //à
  130 + lettre = 233;
  131 + break;
  132 + case 225 : //á
  133 + lettre = 160;
  134 + break;
  135 + case 226 : //â
  136 + lettre = 131;
  137 + break;
  138 + case 230 : //æ
  139 + lettre = 145;
  140 + break;
  141 + case 231 : //ç
  142 + lettre = 135;
  143 + break;
  144 + case 232 : //è
  145 + lettre = 138;
  146 + break;
  147 + case 233 : //é
  148 + lettre = 130;
  149 + break;
  150 + case 234 : //ê
  151 + lettre = 136;
  152 + break;
  153 + case 235 : //ë
  154 + lettre = 137;
  155 + break;
  156 + case 236 : //ì
  157 + lettre = 141;
  158 + break;
  159 + case 237 : //í
  160 + lettre = 161;
  161 + break;
  162 + case 238 : //î
  163 + lettre = 140;
  164 + break;
  165 + case 239 : //ï
  166 + lettre = 139;
  167 + break;
  168 + case 241 : //ñ
  169 + lettre = 164;
  170 + break;
  171 + case 242 : //ò
  172 + lettre = 149;
  173 + break;
  174 + case 243 : //ó
  175 + lettre = 162;
  176 + break;
  177 + case 244 : //ô
  178 + lettre = 147;
  179 + break;
  180 + /*case 156 : //œ
  181 + lettre =
  182 + break;*/
  183 + case 249 : //ù
  184 + lettre = 151;
  185 + break;
  186 + case 250 : //ú
  187 + lettre = 163;
  188 + break;
  189 + case 251 : //û
  190 + lettre = 150;
  191 + break;
  192 + /*case 252 : //ü
  193 + lettre =
  194 + break;*/
  195 + case 253 : //ý
  196 + lettre = 263;
  197 + break;
  198 + case 255 : //ÿ
  199 + lettre = 152;
  200 + break;
  201 + default :
  202 + break;
  203 + }
  204 + return lettre;
  205 +}
55 206
56 void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { 207 void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
57 208
@@ -77,8 +228,11 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) { @@ -77,8 +228,11 @@ void remplir_dico(FILE* fd, struct node tab_arbre_prcp[]) {
77 while((motLu[i] != '\0') && (wchar_tEstUneLettre == 1)) { 228 while((motLu[i] != '\0') && (wchar_tEstUneLettre == 1)) {
78 i += 1; 229 i += 1;
79 wprintf(L"lettre lue %ld\n", motLu[i]); 230 wprintf(L"lettre lue %ld\n", motLu[i]);
  231 + if(motLu[i] > 127) {motLu[i] = conversion_accent(motLu[i]);
  232 + wprintf(L"lettre lue apres convversion : %ld\n", motLu[i]);}
80 localisationArbre = insertion(motLu[i], localisationArbre); 233 localisationArbre = insertion(motLu[i], localisationArbre);
81 } 234 }
  235 + wprintf(L"mot lu 2: %ls\n", motLu);
82 } 236 }
83 wprintf(L"\n"); 237 wprintf(L"\n");
84 fclose(fd); 238 fclose(fd);
@@ -104,6 +258,7 @@ void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) { @@ -104,6 +258,7 @@ void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) {
104 int verif; 258 int verif;
105 wchar_t motLu[50]; 259 wchar_t motLu[50];
106 while(fwscanf(fd, L"%ls", motLu)==1) { 260 while(fwscanf(fd, L"%ls", motLu)==1) {
  261 + wprintf(L"mot lu : %ls\n", motLu);
107 verif = 1; 262 verif = 1;
108 int i = 0; 263 int i = 0;
109 if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) { 264 if((motLu[0] >= 'A') && (motLu[0] <= 'Z')) {
@@ -117,13 +272,15 @@ void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) { @@ -117,13 +272,15 @@ void correction_txt(FILE* fd, struct node tab_arbre_prcp[]) {
117 verif = 0; 272 verif = 0;
118 } 273 }
119 while((verif == 1) && (motLu[i] != '\0')) { 274 while((verif == 1) && (motLu[i] != '\0')) {
120 - wprintf(L"mot lu : %ls\n", motLu);  
121 i += 1; 275 i += 1;
  276 + if(motLu[i] > 127) {motLu[i] = conversion_accent(motLu[i]);
  277 + wprintf(L"mot lu 2 : %ls\n", motLu);}
122 localisationArbre = test_mot(motLu[i], localisationArbre, &verif); 278 localisationArbre = test_mot(motLu[i], localisationArbre, &verif);
123 wprintf(L"lettre lue %ld\n", motLu[i]); 279 wprintf(L"lettre lue %ld\n", motLu[i]);
124 } 280 }
125 wprintf(L"\n"); 281 wprintf(L"\n");
126 if(verif == 0) wprintf(L"Mot %ls non present dans le dicitonnaire.\n", motLu); 282 if(verif == 0) wprintf(L"Mot %ls non present dans le dicitonnaire.\n", motLu);
  283 +
127 } 284 }
128 fclose(fd); 285 fclose(fd);
129 } 286 }
@@ -144,7 +301,7 @@ void correction_mot(struct node tab_arbre_prcp[]) { @@ -144,7 +301,7 @@ void correction_mot(struct node tab_arbre_prcp[]) {
144 localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils; 301 localisationArbre = &tab_arbre_prcp[motLu[0]-97].listeFils;
145 } 302 }
146 else { 303 else {
147 - wprintf(L"Erreur correction txt : L'un des caract%lcres n'est pas une lettre\n", 130); 304 + wprintf(L"Erreur correction mot : L'un des caract%lcres n'est pas une lettre\n", 130);
148 verif = 0; 305 verif = 0;
149 } 306 }
150 while((verif == 1) && (motLu[i] != '\0')) { 307 while((verif == 1) && (motLu[i] != '\0')) {
@@ -159,7 +316,6 @@ void correction_mot(struct node tab_arbre_prcp[]) { @@ -159,7 +316,6 @@ void correction_mot(struct node tab_arbre_prcp[]) {
159 316
160 317
161 int main(int argc, char* argv[]) { 318 int main(int argc, char* argv[]) {
162 -  
163 FILE* dico = NULL; 319 FILE* dico = NULL;
164 FILE* txt = NULL; 320 FILE* txt = NULL;
165 struct node tab_arbre[A]; 321 struct node tab_arbre[A];
projetfinalwchar_t.exe
No preview for this file type