唐僧爱吃唐僧肉 2017-04-25 09:23 采纳率: 16.7%
浏览 1099

妹子不知道程序错在哪里了,求大神帮帮忙啊

用函数编程实现计算字符串中子串出现的次数。
函数原型:
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;
}
接收不了正确的结果啊?求大神帮帮忙指点一下/

  • 写回答

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键盘的输入法