问答题 使用VC6打开考生文件夹下的源程序文件modi.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 s2[256]; cout<<"please input a string:"<<end1; cin.getline(s1,1 024); cout<<”please input otherstring:"<<end1; cin.getline(s2,256); cout<<fun(s1,s2); cout<<end1; return; }
【正确答案】正确答案:int size=0; //初始化字符串 统计变量个数 int sllen; int s2len; for(sllen=0;s1[sllen]!=0;sllen ++);//第一个字符串循环 for(s2len=0;s2[s2len]!=0;s2len ++);//第二个字符串循环 for(int i=0;i<sllen;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)size变量用来存放s1中出现s2的个数,初始值赋为0。 (2)然后利用for循环对s2中的每一个字符与s1中的字符进行比较。 (3)如果循环中有符合条件的字符串,就将变量size个数加1。