下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char

14 查阅

下列程序的功能是:求出ss字符串中指定字符c的个数,并返回此值。请编写函数int num(*char ss,char c)以实现程序要求,最后调用函数readwriteDat(),把结果输出到文件out.dat中(注:大小写字母有区别)。例如:若输入字符串“ss="123412132" , c=’1’”,则输出“3”。部分源程序已给出。请勿改动主函数main()和输出数据函数writeDat()的内容。#include <conio.h>#include <stdio.h>#define M 81void readwriteDAT(); int num(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" ,num(a,ch)); readwriteDAT();}viod readwriteDAT(){ 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<10;i++){ fscanf(rf," %s",a); fscanf(rf," %s" ,b); ch=*b; fprintf(wf," %c=%d\n:" ,ch,num(a,ch));} fclose(rf); fclose(wf);}

参考答案:

请参考解析【解析及答案】本题的任务是把单词统计函数num(char *ss,char c) 补充完整,其中,ss是需统计的字符串,c是待统计的字符。本题属于单个字符串统计问题,处理过程相对简单一些。首先,把计数器清零。然后,一边扫描字符串ss,一边统计字符c出现的次数,如果字符c出现1次,那么计数器的值自动增加1。最后,计数器的值就是字符c在字符串ss中出现的总次数。求解核心是字符c的匹配和计数器的计数。综上所述,完整的统计函数num(char *ss,char c) 如下。int num(char *s

计算机三级