问答题 使用VC6打开 下的源程序文件modi2.cpp。请完成函数fun(char*s1,char*s2),此函数的功能是计算s1中出现s2的个数,当不出现时,则返回0。
如:
s1为"1112223333aaaaeeffd"
s2为"11"则返回1
s2为"aa"则返回2
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <iostream. h>
//注意只能使用int类型,不能类型转换
int fun(char* s1,char* s2)
{
}
void main()
{
char s1[1024];
char s21256];
cout "please input a string:" endl;
cin.getline(s1,1024);
cout "please input otherstring: " endl;
cin.getline(s2,256);
cout fun(s1,s2);
cout
【正确答案】
【答案解析】int size=0; //初始化字符串统计变量个数
int s1len;
int s2len;
for(s1len=0; s1[s1len]!=0;s1len++); //第一个字符串循环
for(s2len=0;s2[s2len]!=0;s21en++); //第二个字符串循环
for(int i=0;i<s1len;i++)
{
int j=0;
for(;j<s2len;j++)
if(s1[i+j]!=s2[j]) //将第二个串中的字符与第一个串中的字符比较
break;
if(j==s2len)
{
++size;
i+=j;
--i;
}
}
return size;
答案考生文件夹 [解析]
(1)该程序功能是计算s1中出现s2的个数。它的解题思路是两个字符串逐个比较其中的字符,从而统计符合的字符串个数。
(2)从已给部分源程序的main主函数开始入手,核心函数int fun(char*s1,char*s2)中的s1,s2参数为输入的字符串。
(3)size变量用来存放s1中出现s2的个数,初始值赋为0。
(4)然后利用for循环对s2中的每一个字符与s1中的字符进行比较。
(5)如果循环中有符合条件的字符串,就将变量size个数加1。