Commit c047868f1e800e1767b08b8d42c58a9659cf8078
1 parent
f7bba812
old
Showing
1 changed file
with
0 additions
and
112 deletions
Show diff stats
projet.c deleted
@@ -1,112 +0,0 @@ | @@ -1,112 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <string.h> | ||
3 | -#include <stdlib.h> | ||
4 | -#include <stdbool.h> | ||
5 | - | ||
6 | -struct cell { | ||
7 | - int stop; | ||
8 | - struct cell * liste[26]; | ||
9 | -}; | ||
10 | - | ||
11 | -int num(char c){ | ||
12 | - int x; | ||
13 | - x=c; | ||
14 | - if (x>96 && x<123){x=x-97;} | ||
15 | - if (x>64 && x<91) {x=x-65;} | ||
16 | - return x; | ||
17 | -} | ||
18 | - | ||
19 | -int ajout_mot(struct cell ** d,char * m){ | ||
20 | - char c; | ||
21 | - struct cell **tmp1 , *tmp2 ; | ||
22 | - int x=0; | ||
23 | - if (*d==NULL){return EXIT_FAILURE;} | ||
24 | - tmp1=d; | ||
25 | - c=m[x]; | ||
26 | - while (c != '\0'){ | ||
27 | - //printf("%c",c); | ||
28 | - if ((*tmp1)->liste[num(c)]==NULL){ | ||
29 | - tmp2=malloc(sizeof(struct cell)); | ||
30 | - (*tmp1)->liste[num(c)]=tmp2; | ||
31 | - } | ||
32 | - tmp1=&((*tmp1)->liste[num(c)]); | ||
33 | - x++; | ||
34 | - c=m[x]; | ||
35 | - } | ||
36 | - (*tmp1)->stop=1; | ||
37 | - //printf("\n"); | ||
38 | - return 1; | ||
39 | -} | ||
40 | - | ||
41 | -void creation_dico(FILE *fd, struct cell **d){ | ||
42 | - char s[20]; | ||
43 | - while (fscanf(fd,"%s",s)==1){ | ||
44 | - ajout_mot(d,s); | ||
45 | - } | ||
46 | -} | ||
47 | - | ||
48 | -int reconaissance(struct cell * d,char * m){ | ||
49 | - char c; | ||
50 | - struct cell *tmp1; | ||
51 | - int x=0; | ||
52 | - tmp1=d; | ||
53 | - if (d==NULL){return 1;} | ||
54 | - c=m[x]; | ||
55 | - while (c != '\0' && c != ' ' && c!= '.' && c != ':' && c != ',' && c != '?' && c != ';'){ | ||
56 | - if (tmp1->liste[num(c)]==NULL){return 1;} | ||
57 | - tmp1=(tmp1->liste[num(c)]); | ||
58 | - x++; | ||
59 | - c=m[x]; | ||
60 | - } | ||
61 | - if (tmp1->stop==1) {return 0;} | ||
62 | - return 1; | ||
63 | -} | ||
64 | - | ||
65 | -int lecture(FILE *fd, struct cell *d){ | ||
66 | - char s[20]; | ||
67 | - int cmpt=0; | ||
68 | - int x; | ||
69 | - while (fscanf(fd,"%s",s)==1){ | ||
70 | - x=reconaissance(d,s); | ||
71 | - cmpt+=x; | ||
72 | - if(x==1){printf("%s \n",s);} | ||
73 | - } | ||
74 | - return cmpt; | ||
75 | -} | ||
76 | - | ||
77 | - | ||
78 | - | ||
79 | -int main(int argc, char *argv[]) | ||
80 | -{ | ||
81 | - if (argc < 3) | ||
82 | - { | ||
83 | - fprintf(stderr, "usage: hash <file_name>\n"); | ||
84 | - return EXIT_FAILURE; | ||
85 | - } | ||
86 | - | ||
87 | - FILE *fp; | ||
88 | - printf("%s\n",argv[1]); | ||
89 | - fp=fopen(argv[1], "r"); | ||
90 | - if (fp==NULL) | ||
91 | - { | ||
92 | - fprintf(stderr, "no such file, or unreachable: %s\n", argv[1]); | ||
93 | - return EXIT_FAILURE; | ||
94 | - } | ||
95 | - | ||
96 | - FILE *fd; | ||
97 | - printf("%s\n",argv[2]); | ||
98 | - fd=fopen(argv[2], "r"); | ||
99 | - if (fd==NULL) | ||
100 | - { | ||
101 | - fprintf(stderr, "no such file, or unreachable: %s\n", argv[2]); | ||
102 | - return EXIT_FAILURE; | ||
103 | - } | ||
104 | - | ||
105 | - | ||
106 | - struct cell *d; | ||
107 | - d=malloc(sizeof(struct cell)); | ||
108 | - creation_dico(fp,&d); | ||
109 | - int inc; | ||
110 | - inc=lecture(fd,d); | ||
111 | - printf("%d mots non reconnus", inc); | ||
112 | -} |