gegeda123 2016-12-11 13:34 采纳率: 0%
浏览 1330
已采纳

C语言 求注释这是什么意思啊?

编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2在s1中未出现,则返回0。例如:
若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4
若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No find

答案: int fun(char *s1, char *s2)
{
int i, j, len1 = strlen (s1), len2 = strlen (s2), n=0;

for (i=0; i<=len1-len2; i++)
{
    for (j=0; j<len2; j++)
    {
        if (*(s1+i+j) != *(s2+j))
            break;
    }
    if (j == len2)
    {
        i += j-1;
        n++;
    }
}

return n;

}
求每行的注释!!!!!!!!!!1

  • 写回答

3条回答 默认 最新

  • s121005 2016-12-11 13:51
    关注

    如果需要实现此功能,你需要知道什么?
    参数是否合理?当str2大于str1时就明显不合理,这在最外层循环中体现
    每次在str1中匹配时,默认是在位置0开始的,这个位置由i体现
    如何判断是否找到?由if(j==len2)体现
    如何增加找到的次数?n++体现
    当找到后(没找到则移动一个位置),位置应该被移动str2的长度的距离,例如在12312中找12,第一次找到了,那么第二次应该在2312中找12吗?显然不需要,应该在312中找。由i += j-1体现,不过在这里我觉得使用 i += len2-1更合适。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器