Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct node {string car ; struct node * cdr ; } node, *list ;
- #define nil NULL
- #define car(node) ((node)->car)
- #define cdr(node) ((node)->cdr)
- #define BUFSIZ 100
- typedef char* string
- void usage(char *)
- void libere (list L);
- int main(int argc, char* argv[])
- {
- FILE *in, *out;
- in = fopen( argv[3], "r" );
- out= fopen( argv[4], "w" );
- if (in == NULL || out == NULL)
- printf ("erreur d'ouverture")
- list L1 = NULL;
- while (fgets(temp, BUFSIZ, in))
- { L1 = cons(temp, L1) ;
- printf("%s", temp) ; }
- L2 = L1;
- list L2 = remplace(argv[1], argv[2], L1);
- L3 = L2;
- while ( L3 != NULL ) {
- fputs(car(L3), out);
- fputc ('\n', out)
- L3 = cdr ( L3 );
- }
- fclose(in);
- fclose(out);
- return 0;
- }
- list cons(int car, list L)
- {
- list new = malloc(sizeof(node)) ;
- if (! new) usage("manque de RAM") ;
- new -> car = car ;
- new -> cdr = L
- }
- list remplace(string element, string par, list L)
- {
- if (strcmp(car(L), element) == 0)
- {
- car(L) = par;
- return (cdr(L)==NULL)?L:remplace(element, par, cdr(L)) ;
- }
- if (L)
- return (cdr(L)==NULL)?L:remplace(element, par, cdr(L)) ;
- return NULL ;
- }
- void libere (list L) {
- list temp;
- while (L != NULL)
- {
- temp = cdr ( L );
- free ( L );
- L = temp;
- }
- }
- void usage(char * message) { fprintf(stderr, "%s\n", message) ; exit(1) ; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement