问答题 下列给定程序中,函数proc()的功能是:统计字符串sub在字符串str中出现的次数。例如,若字符串为bestwishesto you,子字符串为st,则应输出2。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
proc(char*str, char*sub)
{
int i, j, k, num=0;
//****{ound****
for(i=0, str[i], i++)
for(j=i, k=0; sub[k]==str[j]; k++, j++)
if(sub[k+1]=="/0")
{ num++;
break;
}
return num;
}
void main()
{
char str[80], sub[80];
printf("Input a string:");
gets(str);
printf("Input a sbustring:");
gets(sub);
printf("%d/n", proc(str, sub));
}
【正确答案】
【答案解析】错误:for(i=0, str[i], i++)
正确:for(i=0; str[i]; i++) [解析] 根据C语言语法规则,for循环中的条件语句之间是用分号间隔的,而不是用逗号。因此,“for(i=0, str[i], i++)”应改为“for(i=0; str[i]; it+)”。