请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<coio.h> #include<stdio.h> #define M 81 int fun(char *ss,char c) { } main() { char a[M],ch; clrscr(); 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)); }
参考答案:
解析:int fun(char *ss,char c) { int i=0; for (;*ss!=’\0’;ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; } 从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次,