模式匹配
大神们,这题我的算法有问题吗为何没有输出,还超出时限以字符串的形式给出文本text和模式串p1,p2...pn。请使用指针方法编写程序判断有多少个模式串出现在文本中。
输入格式
第一行一个整数N(N<=20),表示模式串的个数。
第二行,一个字符串,表示给定的文本。文本长度<=20。
第三行至第N+2行,每行一个字符串,表示模式串。模式串长度<=10。
输出格式
输出一个整数,即出现在文本中的模式串的个数。
样例输入
2
Abc
Ab
bc
样例输出
2
#include<stdio.h>
int main()
{
char a[20][20];
char str[20];
int n,i,j,k,t=0,flag=1,f=1;
char *p=str;
scanf("%d",&n);
scanf("%s",str);
for(i=0;i<n;i++)
scanf("%s",a[i]);
for(i=0;i<n;i++) //
{
j=0;flag=1;
for(j=0,p=str;*(p+i)!='\0'&&flag==1;j++) //
{
if(*(p+i)==a[i][0])
{
k=0;f=1;
for(k=0,f=1;a[i][k]!=0;k++)
{
if((a[i][k]!=*(p+j+k))||*(p+j+k)=='\0') //
f=0;
}
if(f==1)
{
t++;
flag=0;
}
}
}
}
printf("%d\n",t);
return 0;
}