编写C++程序统计子字符串出现在母字符串中的个数。

用C++编写一个函数intfun(char*str,char*substr),该函数可以统计子字符串substr在母字符串str中出现的次数,并将该次数作为函数值返回。例... 用C++编写一个函数int fun( char *str, char *substr) ,该函数可以统计子字符串substr在母字符串str中出现的次数,并将该次数作为函数值返回。例如,输入的母字符串为asd asasdfg asd as zx67, 输入的子字符串为as,则as出现在母串中的次数应为5。要求在主函数中分别输入母串和子串,并将它们作为实际参数调用函数fun,同时将结果在主函数中输出。 展开
 我来答
baohuiyun
2011-05-07 · TA获得超过101个赞
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
#include "stdafx.h"

#include "stdio.h"
#include <string.h>
int main()
{
char str[256],substr[256];
int count = 0;
printf("请输入字符串:");
scanf("%s",str);
printf("请输入子字符串:");
scanf("%s",substr);
count = findSubString(str,substr);
printf("%s出现在%s中的次数为:%d",substr,str,count);
getchar();
getchar();
return 0;
}
int findSubString(char *str,char *substr)
{
int substrLen =0,totalStrLen=0,cursor=0,count=0;
while(*str!='\0')
{
totalStrLen++;
str++;
}
str = str-totalStrLen;
while (*substr!='\0')
{
substrLen++;
substr++;
}
substr= substr-substrLen;
char *strVal = new char[substrLen+1];
strVal[substrLen]='\0';
while ((cursor+substrLen) < totalStrLen)
{
memcpy(strVal,str+cursor,substrLen);
if(strcmp(substr,strVal)==0)
{
count ++;
cursor += substrLen;
}
else
cursor++;
}
delete[] strVal;
return count;
}
更多追问追答
追问
这是C语言的吧,我问的是C++的哦!!!好像不是很同哦……
追答
根据这个改写为c++的应该很好改的呢。
百度网友8c512873d
2011-05-08 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:105万
展开全部
建议用泛型算法,可直接用fine_first函数
参见c++primer
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式