⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 一个关于多模匹配算法的实现
💻 C
字号:
/* Copyright (c) 1991 Sun Wu and Udi Manber.  All Rights Reserved. */
#include "agrep.h"
unsigned Mask[MAXSYM];
unsigned Init1, NO_ERR_MASK, Init[MaxError];
unsigned Bit[WORD+1];
CHAR buffer[BlockSize+Maxline+1];
unsigned wildmask, endposition, D_endpos; 
int COUNT,RE_ERR,SGREP,REGEX,NOUPPER,D_length,num_of_matched,AND;
CHAR D_pattern[MaxDelimit] = "\n; "; 

void initial_value()
{
   int i;

   SGREP=0;
   Bit[WORD] = 1;
   for (i = WORD - 1; i > 0  ; i--)  Bit[i] = Bit[i+1] << 1; 
   for (i=0; i< MAXSYM; i++) Mask[i] = 0;
}

main()
{
   int fp,fd;
   fp = open("test", 0);
        //printf("Can't open pattern file %s\n", argv[0]);
   prepf(fp);   
   num_of_matched = 0;
   fd=open("text",0);
   mgrep(fd);
   printf("num_of_matched:%d\n",num_of_matched);
   return;
}


/*
  
main()
{
  int  M=0,fd=open("ani",0); 
  unsigned char Pattern[MAXPAT]="agrep;ja",OldPattern[MAXPAT]="agrep";
  
  initial_value();
  preprocess(D_pattern, Pattern);
  M = maskgen(Pattern, 0);
  num_of_matched = 0;
  bitap(D_pattern, Pattern, fd, M, 0);
   num_of_matched = 0;
  M=strlen(OldPattern);
  fd=open("ani",0);
  sgrep(OldPattern, M, fd, 0);
  return;
}
*/
output (buffer, i1, i2, j)  
register CHAR *buffer; int i1, i2, j;
{
        register CHAR *bp, *outend;
	
	if(i1 > i2) return;
        num_of_matched++;
        if (buffer[i1] == '\n')  
               i1++;
        while(buffer[i1] == '\n' && i1 <= i2) 
               i1++;
        bp = buffer + i1;
	outend = buffer + i2;
}

⌨️ 快捷键说明

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