爱睡懒觉的猫猫 2021-12-14 17:10 采纳率: 85.7%
浏览 31
已结题

查找子串数目,代码没有输出值

查找字符串s2中给定子串s1的个数,这是子函数,没有所包含的子串时返回-1。我的代码没有输出。


int indexOf(const char *s1,const  char *s2){
    int i,j,num=0,k=0,flag=1;
    if(strlen(s1)>strlen(s2)) return -1;
    else
    {
        for(i=0;i<strlen(s2);++i)   //历遍s2数组 
        {
            if(s2[i]==s1[0])    //出现第一个字母与s2首字母相同 
            {   
                k=0;
                flag=1;
                for(j=i+1;j<i+1+strlen(s1);++j)   
                {
                    if(s2[j]!=s1[++k]) flag=0;  //出现字符与s1不同 
                }
                if(flag) num++;
            }
        }
        if(num==0) return -1;
        else return num;
    }
}
  • 写回答

2条回答 默认 最新

  • Ltd Pikashu CSDN实力新星 2021-12-14 17:14
    关注

    你的if(s1[i] == s2[0]) 是不是应该改成 if(s2[i] == s1[0])
    因为我看你描述的,s1是子串,s2是主串,那这应该是当主串s2中首次出现字串s1中的首个字母时的判定条件吧?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月14日
  • 修改了问题 12月14日
  • 修改了问题 12月14日
  • 修改了问题 12月14日
  • 展开全部

悬赏问题

  • ¥15 asp写PC网站开通了微信支付,扫码付款不能跳转
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊