字符串匹配

来源:百度知道 编辑:UC知道 时间:2024/05/30 21:32:03
字符串匹配

从string.in中读入数据,然后用户输入一个短字符串。要求查找string.in中和短字符串的所有匹配,输出行号、匹配字符串到string.out文件中。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。

那种匹配要用到正则表达式
还是用Perl语言写比较方便

#define MAX_LI 5000
#define MAX_CO 256

char data1[MAX_LI][MAX_CO];
char data2[MAX_LI][MAX_CO];
/****************************************
Funtion FindWord
Usage:FindWord
If FindWord Return mid else 0
*****************************************/

int FindWord(char data1[MAX_LI][MAX_CO],char data2[MAX_LI][MAX_CO],int num,int i)
{
int high,low=0;
int mid;
high=num-1;
while(low<=high)
{
mid=(low+high)/2;
if(!strcmp(data2[i],data1[mid]))
{
return mid;break;
}
else
{
if(strcmp(data2[i],data1[mid])<0)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
}
return 0;
}

#include <stdio.h>
#define max_ng 10
#define max_len 20

FILE *fin, *fout;
void mai