问答题
1. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为abcdefabcdeabceabcdef,子字符串为cd,则应当输出3。
注意:部分源程序如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序: #include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
int proc(char *str,char *substr)
{
}
void main()
{
char str[81],substr[3];
int n;
system("CLS");
printf("输入主字符串:");
gets(str);
printf("输入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=proc(str,substr);
printf("n=%d\n",n);
}
【正确答案】int proc(char *str, char *substr)
{
int i,j=0;//j表示其相同的个数
for(i=0;str[i+l]!='\0';i++)
if(str[i]==substr[0] &&str[i+1]==substr[1])
//长度为2的字符串在另一个字符串中出现的次数
j++;//把其放到j中
return j;//最后把其个数返回给主函数
}
【答案解析】 要计算出主字符串中包含子字符串的个数,应该检查主字符串中从第一个到最后一个字符。每出现一个计数变量加1,最后,将得到的个数返回给主函数。