gegeda123 2016-12-11 13:51 采纳率: 0%
浏览 1067
已采纳

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
同问0
|
浏览10
|
收藏0
|

  • 写回答

1条回答 默认 最新

  • under_sakura 2016-12-11 14:07
    关注

    int i, j, len1 = strlen (s1), len2 = strlen (s2), n=0; //len1为s1是我长度,len2为s2的长度
    for (i=0; i<=len1-len2; i++) //从s1的0号位置开始遍历
    {
    for (j=0; j<len2; j++) //从s2的0号位置开始一次匹配
    {
    if ((s1+i+j) != *(s2+j)) //如果匹配失败
    break; //继续s1中的下一个字符的匹配
    }
    if (j == len2) //如果匹配到终点
    {
    i += j-1; //更新i的位置,便于下一次匹配
    n++; //匹配正确次数加1
    }
    }
    return n; //返回匹配正确的次数
    }

    如果我没有记错的话,这个串的撇皮算法叫BF算法,还有一种是KMP算法,更快捷。
    希望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大