C语言打印模式匹配的行练习

2014-11-23 22:04:07 · 作者: · 浏览: 8
#include 
#include 
/*************************************
《The C programing language (second edition)》中的小练习

*******************************/

int getline(char *, int );

/*find 函数: 打印所有与第一个指定参数的模式匹配的行*/
int  main(int argc, char *argv[])
{
  char line[1000];
  int found = 0;

  printf("input a line :");

  if(argc != 2)
	  printf("error message: find partten!\n");
  else
    while(getline(line,1000) >
0) if(strstr(line,argv[1]) != NULL) { printf("%s",line); found++; } return found; } /*getline 函数: 从控制端得到行*/ int getline(char *line,int MAXLINE) { char c;int i; for(i = 0 ; i < MAXLINE - 1 && (c = getchar()) != EOF && c != '\n';++i) line[i] = c; if(c == '\n') { line[i] = c; ++i; } line[i] = '\0'; return i; }