#define SIZE 1024

void *my_get(char user[], int size, FILE *fp);

int pattern(char origin[], char pattern[]);

main(int argc, char *argv[]) 

    {

    char *user;

    FILE *fp;

        if(argc !=3 ) {

        printf("Usage: %s  \n", argv[0]);

        exit(0);

    }

        if((fp = fopen(argv[1], "r")) == NULL) {

        perror(argv[1]);

        exit(1);

    }

    user = (char *)calloc(SIZE, sizeof(char)); 

        while((my_get(user, 1024, fp))!=NULL) {

        pattern(user, argv[2]);

        printf("%s", user);

    }

    return 0;

}

int pattern(char origin[], char pattern[]) 

    {

    int o, k, p;

    int f;

        for(o=0,f=0;origin[o];o++) {

        for(k=o,p=0;pattern[p] && pattern[p] == origin[k];k++,p++); 

        if(pattern[p] == NULL)

        o += strlen(pattern)-1;

        else

        origin[f++] = origin[o];

    }

    origin[f] = '\0';

    return 0;

}

void *my_get(char user[], int size, FILE *fp)

    {

    int c, i;

    for(i=0;i < size-1 && (c = getc(fp)) != '\n' && c != EOF; i++) 

    user[i] = c;

        if(c != EOF) {

        user[i++] = c;

        user[i] = '\0';

        return c;

    }

    return NULL;

}