下面的函数统计子字符串substr在字符串str中出现的次数 }

题目:下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。格式:intstr_count(char*... 题目:下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,
则返回值0。请完成该函数。格式:
 int str_count(char *substr, char *str)
输出结果见图:样张.JPG

-------------------------------------------------------*/
#include <iostream>
#include <cstring>
using namespace std;
/**********Program**********/
int str_count(char *substr, char *str)//请问substr与str之前为什么要加*?有什么作用吗?
{
int sum,len;
char *p;
len = strlen(substr);
if(len<1)
return -1;

for(sum=0,p=str;;)
{
p = strstr(p,substr);
if(p!=NULL)
{
sum++;
p=p+len;
}
else
break;
}
return sum;
}

/********** End **********/

void main(void)
{
char ss[100];
char *s="ABCDabcd1234+-*/XYZxyz/ABCDabcd1234+-*/Aa1 ABCDabcd";//为什么s要用指针?
cout<<"母串="<<s<<endl;
cout<<"待计数子串=";
cin.getline(ss,99);
cout<<"子串在母串中共出现"<<str_count(ss,s)<<"次"<<endl;
}
1.请问substr与str之前为什么要加*?有什么作用吗?
2.为什么s要用指针?
本人是c++初学者,请说得简单,详细些
展开
 我来答
雨诺与诺
2015-01-13 · TA获得超过1213个赞
知道小有建树答主
回答量:2179
采纳率:33%
帮助的人:685万
展开全部
您好,对于字符串的处理就是定义字符数组,如char c[4]=“adc”,这个是可以把字符串赋值进去,其实这种写法等价于char *c=“abc”,char *是定义一个指针,所以加*,如果是*c则代表的是C指向的字符,我刚刚的实例中*c就是a.数组的函数参数都是定义指针哦,当然你也可以定义数组,其实是一样的,写法不一样,效果完全一样,可以认为是同一样东西。
第二个和上面解释一样,你可以用数组,数组其实就是定义了一个指针,不过数组会告诉你指向的空间总大小,直接定义指针不会,但定义指针时进行初始化的赋值,就和定义数组效果一样了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
19...8@qq.com
2015-01-13
知道答主
回答量:2
采纳率:0%
帮助的人:2.3万
展开全部
有用应为*是暗号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式