Mercurial > hg > Members > nobuyasu > grep
view read.c @ 1:80a0c0eb67e0 default tip
while
author | nobuyasu |
---|---|
date | Mon, 31 Jan 2011 12:07:24 +0900 |
parents | 60596de1cb2c |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> //exit() #include <string.h> //strlen() #define MAX_LEN 256 int grep(char* string, char* pattern); int main(int argc, char **argv) { FILE *fp; char string[MAX_LEN]; char *filename; char *pattern; if(argc > 2) { pattern = argv[1]; filename = argv[2]; } else{ pattern = "abc"; filename = "./test.txt"; printf("pattern = %s \nfilename = %s \n",pattern,filename); } if ((fp = fopen(filename, "r")) == NULL) { fprintf(stderr, "not found %s\n",filename); exit(2); } while( (fgets(string, MAX_LEN - 1, fp)) != NULL){ string[strlen(string) - 1] = '\0'; if(grep(pattern, string )) puts(string); } fclose(fp); return 0; } int grep(char* pattern, char* string) { char *pattern_; char *str_; do{ pattern_ = pattern; str_ = string; while(*pattern_++ == *str_++) if(*pattern_ == '\0') return 1; }while(*++string != '\0'); if(*str_ == '\0') return 0; }