1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define FICHIER "code.txt"
#define faux 0
#define vrai 1
typedef int boolean;
struct element
{
char c;
char *morse;
struct element* suiv;
};
typedef struct element Element;
typedef Element* Liste;
boolean estVide(Liste l)
{
if (l==NULL) return vrai;
else return faux;
}
void Ajouter_en_Fin(char c,char *m,Liste *l)
{
Liste p=NULL;
Liste q=NULL;
if (estVide(*l)==vrai)
{
p= (Liste) malloc(sizeof(Element));
p->c=c;
p->morse=malloc(strlen(m));
strcpy(p->morse,m);
p->suiv=NULL;
*l=p;
}
else
{
for(p=*l;p->suiv;p=p->suiv)
;
q= (Liste) malloc(sizeof(Element));
q->c=c;
q->morse=malloc(strlen(m));
strcpy(q->morse,m);
q->suiv=NULL;
p->suiv=q;
}
}
void Afficher_liste(Liste l)
{
while(l!=NULL)
{
printf("Element : %c %s\n",l->c,l->morse);
l=l->suiv;
}
}
main()
{
FILE *fp;
char c;
char ligne[100];
char car;
int j;
char *code;
Liste l=NULL;
fp=fopen(FICHIER,"r");
if(fp==NULL) printf("Fichier existe pas\n");
else
{
c=fscanf(fp,"%c %s\n",&car,ligne);
while(c!=EOF)
{
j=strlen(ligne)+1;
code=(char*) malloc(sizeof(char)*j);
strcpy(code, ligne);
/***Travaille sur liste ****/
Ajouter_en_Fin(car,code,&l);
/***************************/
c=fscanf(fp,"%c %s\n",&car,ligne);
}
fclose(fp);
}
Afficher_liste(l);
} |
Partager