请编写函数fun(),其功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除。字符串中剩余的字符所形成的一个新的字符串放在t所指的数组中。 例如:s所指字符串中的内容为ABCDEFG12345,其中字符A,的ASCII码值虽为奇数,但元素所在的下标为偶数,因此必需删除;字符1的ASCII码值为奇数,所在数组中的下标也为奇数,不删除,最后t所指的数组中的内容应是135。 请勿修改主函数main和其他函数中的任何内容,仅在函数su的花括号中填写若干语句。 文件test 27_2.cpp的内容如下; #include <conio.h> #include <stdio.h> #include <iostream.h> #include <string.h> void fun(char *s,char t[ ]) { } void main ( ) { char s[100],t[100]; cout<<"Please enter string S: "<<end1;gets(s);fun(s, t);puts(t); }
参考答案:
解析:void fun(char *s,char t[ ]) { int i,j=0,n; n=strlen(s); for(i=0;i<n;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]=’\0’; } 在解答本题时,首先要清楚一点:那就是在字符参与数值运算时,用的是其ASCII码值来进行计算。另外的一个考查点是判断某数是奇数的方法,即判断该数与2的余数是否为0。