使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。 例如: strl为“asdfsfdfg”

admin2019-03-05  21

问题 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。
    例如:
    strl为“asdfsfdfg”
    str2为“sf”则返回1
    str2为“df”则返回3
    注意:不能修改函数的其他部分。
    试题程序:
    #include(iostream.h)
    //注意只能使用int类型,不能进行类型转换
    int fun(char*str1,char*str2)
    {
    }
    void main()
    t
    char str1[1024];
    char str2[256];
    cout<<"please input a string:"<    cin.getline(str1,1024);
    cout<<"please input other string:"<    cin.getline(str2,256);
    cout<    tout<    return;
    }

选项

答案int fun(char*str1,char*str2) { int size=0; int str1len; int str21en; for(str1len=0;str1[str1len]!=0;str1len++); for(str2len=0;str2[str2len]!=0;str2len++); for(int i=0;i< str1len;i++) { int j=0; for(;j(str21en;j++) if(strl[i+j]!=str2[j]) break; if(j==str21en) { ++size: i+=j; } } return size; }

解析 本题考查的是字符串查找算法。首先求出两个字符串的长度,然后循环遍历第1个字符串,再使用一个内循环遍历第2个字符串,判断两个字符串相应位置是否一致。如果遍历完第2个字符串,所有位置都一致,则size增1,即找到一个子串。
转载请注明原文地址:https://kaotiyun.com/show/kSAp777K
0

最新回复(0)