从键盘输入两个字符串,查找第二个字符串在第一个字符串中出现的次数

例如从键盘输入第一个字符串“abcdefg”,查找从键盘输入的第二个字符串“ab”在第一个字符串中出现的次数,例子中出现的次数是一次则输出1。能给我完整的程序代码吗??请... 例如 从键盘输入第一个字符串“abcdefg”,查找从键盘输入的第二个字符串“ab”在第一个字符串中出现的次数,例子中出现的次数是一次 则输出1。能给我完整的程序代码吗??请用自定义函数实现。 展开
 我来答
流月星寒
2013-12-29 · TA获得超过638个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:580万
展开全部
字符串匹配问题 经典算法有kmp和Sunday........你可以百度一下
更多追问追答
追问
用c语言编程实现      我要现代码。你写出来我就采纳你的。
追答
int SUNDAY(char *text, char *patt)
{
register size_t temp[256];
size_t *shift = temp;
size_t i, patt_size = strlen(patt), text_size = strlen(text);
//cout << "size : " << patt_size << endl;
for( i=0; i < 256; i++ )
{
*(shift+i) = patt_size+1;
}
for( i=0; i < patt_size; i++ )
{
*(shift+ char(*(patt+i))) = patt_size-i;
}

size_t limit = text_size - patt_size+1;
for(i=0; i < limit; i += shift[ text[i+patt_size] ])
{
if( text[i] == *patt )
{
char *match_text = text + i + 1;
size_t match_size = 1;
do
{

if( match_size == patt_size )
{
//printf("%d ",i);
ans++;
}
}while((*match_text++) == patt[match_size++]);
}
}
return ans;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式