欢迎来到考试题库网 考试题库官网

问答题

使用VC++6.o打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。
例如:
str1为“asdfsfdfg”
str2为“sf”则返回1
str2为“df”则返回3
注意:不能修改函数的其他部分。
试题程序:
#include<iostream.h>
//注意只能使用int类型,不能类型转换
intfun(char*str1,char*str2)
{
}
voidmain()
{
charstr1[1024];
charstr2[256];
cout<<"pleaseinputastring:"<<endl;
cin.getline(str1,1024);
cout<<"pleaseinputotherstring;"<<endl
cin.getline(str2,256);
cout<<fun(str1,str2);
cout<<endl;
return;
}

    【参考答案】

    intfun(char*str1.char*str2)
    {
    intsize=0;
    intstrllen;
    intstr2len;
    for(strllen=0;str1[strllen]!=0;strllen++);
    for(str21en=0;str2[str21en]!=0;str2len++);
    for(inti=0:i<strllen;i++)
    {
    intj=0;
    for(;j<str21en;j++)
    if(strl[i+j]!=str2[j])
    break;
    if(i==str21en)
    {
    ++size;
    i+=j;
    }
    }
    returnsize;
    }
    【解析】本题考查的是字符串查找算法。首先求出两个字符串的长度,然后循环遍历第1个字符串,再使用一个内循环遍历第2个字符串,判断两个字符串相应位置是否一致。如果遍历完第2个字符串,所有位置都一致,则记数值size增1,即找到一个子串。

    (↓↓↓ 点击下方‘点击查看答案’看答案解析 ↓↓↓)

    点击查看答案&解析

    相关考题