函数fun()的功能是:统计substr所指子字符串在str所指字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。
#include<stdio.h>
int fun(char*str,char*substr)
int i,j,k,num=0;
/**********found**********/
for(i=0,str[i],i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/**********found**********/
If(substr[k+1]==’\0’)
num++;
break;
return num;
main()
char str[80],substr[80];
printf("Input a string:");
gets(str);
printf("Input a substring:");
gets(substr);
printf("%d\n",fun(str,substr));
参考答案:(1)for(i=0;str[i];i++) (2)if(substr[k+1]==’\0’)
解析: 本题中函数的功能是统计子字符串substr在字符串str中出现的次数。解题过程是在str中查找指定的子串,并且统计了串出现的次数。
①第二个标识下的for循环中的循环表达式之间应使用分号来分隔,所以第二个标识下的“for(i=0,str[i],i++)”应改为“for(i=0;str[i];i++)”。
②第二个标识下“If(substr[k+1]==’\0’)”,其含义是判断substr是否到达了尾部。这里应该用if来判断,在C语言中没有“If”关键字,故第二个标识处应改成“if(substr[k+1]==’\0’)”。
[考点] 函数定义,for循环语句。