【输入】
两行字符串,第一行为目标串,第二行为模式串。
【输出】
若匹配成功,输出子串第一个字符在母串出现的位置(以0为起始);否则,输出-1。
【代码】
/*字符串模式匹配 - BF算法(穷举法)*/
#include<stdio.h>
#include<string.h>
char T[100],P[100];
int position;
int lenT,lenP;
/*穷举法*/
int _BF(char T[],char P[])
{
int i = 0,j = 0,count,pos;
while(i < lenT && j < lenP)
{
if(T[i] == P[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if(j >= lenP)
return i - lenP;
else
return -1;
}
int main()
{
gets(T);
gets(P);
lenT = strlen(T);
lenP = strlen(P);
position = _BF(T,P);
printf("%d",position);
return 0;
}