实现字符串匹配,例如:char str[]=”ababcabcdabcde” char str1[]=”abca”
输出子串在主串的下标
#include <stdio.h>
#include <string.h>
void BF(char str[],char str1[])
{
int i=0,j=0;
int n=strlen(str);
while(i<n)
{
if(str[i]==str1[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
if(j>=strlen(str1))
printf("出现子串%s的下标为:%d\n",str1,i-j);
else
printf("匹配失败");
}
}
int main(int argc, const char *argv[])
{
char str[]="ababcabcdabcde";
char str1[5]="";
gets(str1);
BF(str,str1);
return 0;
}
【输入样例】
abcd
【输出样例】
出现子串abcd的下标为:5
出现子串abcd的下标为:9