使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,函数fun()的功能是将s所指字符串中下标为偶数同时ASCⅡ值为奇数的字符删除,s所指字符串中剩余的字符形成的新字符串存放在t所指的

admin2023-02-27  23

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,函数fun()的功能是将s所指字符串中下标为偶数同时ASCⅡ值为奇数的字符删除,s所指字符串中剩余的字符形成的新字符串存放在t所指的数组中。
    例如,若s所指字符串中的内容为"ABCDEFG12315",其中字符C的ASCⅡ值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCⅡ值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是"BDF12345"。
    注意:部分源程序在文件progl.c中。
    请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 void fun(char*s,char t[])
4 {
5
6 }
7 main()
8 {
9  char s[100],t[100];void NONO();
10  printf("\nPlease enter string s:");
11  scanf("%s",s);
12  fun(s,t);
13  printf("\nThe result is:%s\n",t);
14  NONO();
15 }
16 void NONO()
{/*本函数用于打开文件、输入数据、调用函数、输出数据及关闭文件*/
17 char s[1 00],t[100];
18 FILE*rf,*wf;
19 int i;
20 rf=fopen("in.dat","r");
21 wf=fopen("out.dat","w");
22 for(i=0;i<10;i++){
23    fscanf(rf,"%s",s);
24    fun(s,t);
25    fprintf(wf,"%s\n",t);
26   }
27  fclose(rf);
28  fclose(wf);
29 }

选项

答案 1 void fun(chal *s,char t[]) 2 { 3 int i,j=0; 4 for(i=0;i<strlen(s);i++) 5 if(!((i%2)==0&&(s[i]%2))) 6 t[j++]=s[i]; 7 t[j]=0; 8 }

解析 按题目要求,将字符串s中符合要求的字符存放到字符数组t中。我们使用for循环语句来解决这个问题。在赋值之前,先对字符串s的元素下标和ASCⅡ值进行判断,将满足要求的元素赋给数组t,将数组t的最后一个字符赋值为'\0',即ASCⅡ值为0。
转载请注明原文地址:https://jikaoti.com/ti/0BoiFFFM
0

最新回复(0)