使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是统计s所指字符串中的数字字符个数。并将其作为函数值返回。 例如,s所指字符串中的内容是2def

admin2023-02-27  16

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是统计s所指字符串中的数字字符个数。并将其作为函数值返回。
    例如,s所指字符串中的内容是2def35adh25
3kjsdf 7/kj8655x,函数fun()返回值为11。
    注意:部分源程序在文件progl.c中。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 void NONO();
3 int fun(char*s)
4 {
5
6 }
7 main()
8 {char*s="2 def35adh25 3kjsdf
7/kj8655x";
9 printf("%s\n",s);
10 printf("%d\n",fun(s));
11  NONO();
12 }
13 void NONO{)
14 {/*本函数用于打开文件、输入数据、调用函数、输出数据及关闭文件*/
15  FILE*fp,*wf;
16  int i;
17  char s[256];
18 fp=fopen("in.dat","r");
19 wf=fopen("out.dat","W");
20 for(i=0 ; i<10;i++){
21  fgets{s,255,fp);
22  fprintf(wf,"%d\n",fun(s));
23  }
24  fclose(fp);
25  fclose(wf);

选项

答案 1 int fun(char*s) 2 {int n=0; 3 chax * p; 4 for(p=s;p!='\0';p++) 5 if((*p>='0')&&('p<='9')) 6 n++; 7 return n; 8 }

解析 要统计字符串中数字字符的个数,首先应定义变量n,并将其初始化为0,然后遍历字符串,逐个判断字符是否为数字字符。判断条件为该元素的ASCⅡ值在字符0到9的ASCⅡ值之间,若判断条件成立,则使n的值加1,否则继续判断下一个字符,直到字符串结束。
转载请注明原文地址:https://kaotiyun.com/show/XP0D777K
0

最新回复(0)