问答题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*s1,char*s2),此函数的功能是计算s1中出现s2的个数,当不出现时,则返回0。如:s1为"1112223333aaaaeeffd"s2为"11"则返回1s2为"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:"<<endl;cin.getline(s1,1024);cout<<"please input otherstring:"<<endl;cin.getline(s2,256);cout<<fun(s1,s2);cout<<endl;return;}
【正确答案】正确答案:int size=0;//初始化字符串 统计变量个数 int s1len; int s2len; for(s1len=0;s1[s1len]!=0;s1len++);//第一个字符串循环 for(s2len=0;s2[s2len]!=0;s2len++);//第二个字符串循环 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)size变量用来存放s1中出现s2的个数,初始值赋为0。 (2)然后利用for循环对s2中的每一个字符与s1中的字符进行比较。 (3)如果循环中有符合条件的字符串,就将变量size个数加1。