用函数编程实现计算字符串中子串出现的次数。
函数原型:
int FindString(char *str,char *sub)
要求:
在主函数中输入字符串和子串,调用FindString()函数,输出子串出现的次数。
妹子的程序:
#include
#include
int FindString(char *str,char *sub);
#define N 100
int main()
{
char a[N],b[N],i;
printf("输入字符串:");
gets(a);
printf("输入子字符串:");
gets(b);
i=FindString(a,b);
printf("重复%d次:",i);
}
int FindString(char *str,char *sub)
{
char b[N];
int n=0;//n记录重复的次数;
while(*str!='\0')
{
sub=&b[0];//如果在下面第二个while中读取一半子字符串与主字符串不相等
while(*str!=*sub)//的情况发生时 ,需要让指针指向子字符串的第一个地址接着查找;
{
str++;//不相等时str继续向后读取下标
}
while(*sub!='\0'&&*str==*sub)
{
str++;
sub++;//相等时接着验证后续字符是否相等
}
if(*sub=='\0')//读取完毕说明有相同的子字符串
{
n++;
sub=&b[0];//还原子字符串便于接下来的验证;
}
}
return n;
}
接收不了正确的结果啊?求大神帮帮忙指点一下/
妹子不知道程序错在哪里了,求大神帮帮忙啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- hellolaozhu 2017-04-25 10:02关注
我也是初学者,我认为错误在这i=FindString(a,b);
您声明的函数输入参数是指针,这里的输入却不是,
我觉得可以尝试改为i=FindString(&a,&b);
初学者,回答有问题希望您不吝指正。解决 无用评论 打赏 举报
悬赏问题
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了
- ¥50 切换TabTip键盘的输入法