本期介绍关于循环的程序设计题,循环用于多次重复进行同一个操作或相似操作,应用十分广泛,循环语句主要有三种,for循环,while循环,以及do...while循环,这三种循环各有优缺。下面就有一道关于循环的程序设计题。
【问题】:
编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符为1,则输出3。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【程序】:
#include
#include
#define M 81
int fun(char *ss, char c)
{
}
main()
{ char a[M], ch;
void NONO ( );
printf("\nPlease enter a string:"); gets(a);
printf("\nPlease enter a char:"); ch = getchar();
printf("\nThe number of the char is: %d\n", fun(a, ch));
NONO ( );
}
void NONO ( )
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
FILE *rf, *wf ;
char a[M], b[M], ch ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i
fscanf(rf, "%s", a) ;
fscanf(rf, "%s", b) ;
ch = *b ;
fprintf(wf, "%c=%d\n", ch, fun(a, ch)) ;
}
fclose(rf) ;
fclose(wf) ;
}
----------------------------------------
【答案参考】:
int fun(char *ss, char c)
{
int i=0;
for(;*ss!='\0';ss++)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符的个数*/
return i;
}
【考点分析】;
由题可以看出,char *ss用来接收所输入的字符串, char c 用于计算要求的个数,从字符串中查找指定字符,需要使用循环判断结构,故可用循环来遍历数组,每达到一次要求便累加一次,本题参考答案我们使用了for循环体结构来所求功能,*ss!='\0'用于判断是否达到输入字符串的最大个数(循环条件为字符串没有结束,即当前字符不是′\0′),if用来判断是否符合条件(判断语句用来判断当前字符是否为指定字符),最后返回指定字符的个数。当然也可用其他两个循环体来做本题
领取专属 10元无门槛券
私享最新 技术干货