A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiangenhao 中级黑马   /  2014-4-23 00:12  /  946 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jiangenhao 于 2014-4-26 01:03 编辑
  1. 下面程序的功能是统计字串sub在母串s中出现的次数。请填空
  2. #include "stdio.h"
  3. #include "string.h"
  4.     main()
  5.     {
  6.         char s[80], sub[80];
  7.         int n;
  8.         gets(s);
  9.         gets(sub);
  10.         printf("%d\n", count(s,sub));
  11.     }
  12.     int count( char *p, char *q)
  13.     {
  14.         int m, n, k, num=0;
  15.         for (m=0; p[m]; m++)
  16.             for (【1】, k=0; q[k]==p[n]; k++, n++)
  17.                 if(q[【2】]=='\0')
  18.                 { num++;  break;}
  19.         return (num);
  20.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
第一处:n=m 第二处: k+1 程序如下:供参考
#include "stdio.h"
#include "string.h"
main()
{
    char s[80], sub[80];
    int n;
    gets(s);
    gets(sub);
    printf("%d\n", count(s,sub));
}
int count( char *p, char *q)
{
    int m, n, k, num=0;
    for (m=0; p[m]; m++)
        for (n=m, k=0; q[k]==p[n]; k++, n++)
            if(q[k+1]=='\0')
            { num++;  break;}
    return (num);
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
看懂了  谢谢 楼上的 你的注释很清楚
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马