回 帖 发 新 帖 刷新版面

主题:菜鸟求指教!!!

面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。

 int str_count(char *substr, char *str)

 {

 }




下面是我写的程序,麻烦大侠帮我看一下,谢谢!
#include<iostream>
#include<string>
using namespace std;
int str_count(char *substr, char *str)
{
    int a,b,i,j,k=0,m=0;
    a=strlen(substr);//计算长度
    b=strlen(str);//计算长度
    for(i=0;i<a-b+1;i++)//i控制substr的起始位
    {
        for(j=0;j<b;)//b的长度控制
        {
            if(substr[i]==str[j])
            {
                i++;
                j++;
                k++;//k用于判断子字符串与substr字符串中的一段连续字符是否匹配
            }
            else 
                break;//如果不匹配,跳出内层循环
        }
        if(k==b)//如果完全匹配,计数
          m++;//m用于计数
    }
    return m;
}

int main()
{
    string s1,s2;
    cin>>s1>>s2;
    str_count(s1, s2);
    return 0;

}

回复列表 (共1个回复)

沙发

函数借口写的是char型的指针,你用的时候却穿进去了string型
调用函数后没有东西来承接返回值
如果str为“0000000”,substr为“00”,那么你的函数定义是错误的,应该修改查找时的起始位置

我来回复

您尚未登录,请登录后再回复。点此登录或注册