时间限制: 1000 MS 内存限制: 65536 K
提交数: 765 (0 users) 通过数: 262 (251 users)
问题描述
以字符串的形式给出文本text和模式串p1,p2...pn。请使用指针方法编写程序判断有多少个模式串出现在文本中。
输入格式
第一行一个整数N(N<=20),表示模式串的个数。
第二行,一个字符串,表示给定的文本。文本长度<=20。
第三行至第N+2行,每行一个字符串,表示模式串。模式串长度<=10。
输出格式
输出一个整数,即出现在文本中的模式串的个数。
样例输入
2
Abc
Ab
bc
样例输出
2
来源
xmu
#include <stdio.h>
int has_pattern(char *text, char *pattern)
{
char *ptr_text, *ptr_pattern, *temp;
ptr_text = text;
while (*ptr_text)
{
ptr_pattern = pattern;
temp = ptr_text;
while (*ptr_pattern && *temp)
{
if (*ptr_pattern != *temp)
break;
ptr_pattern++;
temp++;
}
if (!*ptr_pattern)
return 1;
ptr_text++;
}
return 0;
}
int main()
{
int n, i, count;
char text[25] = { 0 };
char pattern[15] = { 0 };
scanf("%d", &n);
getchar();
gets(text);
count = 0;
for (i = 0; i < n; ++i)
{
gets(pattern);
count += has_pattern(text, pattern);
}
printf("%d\n", count);
return 0;
}