fnd.c

来自「数字转换的六个功能模块」· C语言 代码 · 共 41 行

C
41
字号
/*
** fnd.c -- find patterns in text file
**
** Copyright 1982 J. E. Hendrix.  All rights reserved.
*/
#include <stdio.h>
#include "tools.h"
#define NOCCARGC
#define MAXARG 49
#define MAXLIN1 (MAXLINE+1)
char arg[MAXARG], lin[MAXLIN1], pat[MAXPAT];
int err, argi;
main(argc, argv) int argc, *argv; {
  auxbuf(stdin, 4096);
  err=NO;
  if((getarg(1, arg, MAXARG, argc, argv)==EOF)|(arg[0]=='-'))
    error("usage: FND [~]pattern\n");
  if(arg[0]==NOT) argi=1; else argi=0;
  if(getpat(arg+argi, pat)==ERR) error("pattern too long\n");
  while(fgets(lin, MAXLIN1, stdin)!=NULL) {
    poll(YES);
    trim(lin);
    if(match(lin, pat)) {
      if(argi==0) lout(lin, stdout);
      }
    else if(argi==1) lout(lin, stdout);
    }
  fclose(stdout);
  }

getpat(arg, pat) char arg[], pat[]; {
  return(makpat(arg, 0, NULL, pat));
  }

#include "pat.c"
#include "error.c"
#include "index.c"
#include "out.c"
#include "trim.c"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?