请补充函数fun(),该函数的功能是:把ASCII码为奇数的字符从字符串str中删除,结果仍然保存在字符串str中。字符串str从键盘输入,其长度作为参数传入函数fun()。 例如,输入“abcdef”,输出“bdf”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 80 void fun(char s[],int n) { int i, j; j=0; for(i=0; 【1】 ;i++) { if( 【2】 )s [j++]-s [i]; } 【3】 ; } main ( ) { int i=0, strlen=0; char str [N]; clrscr (); printf ("\nInput a string: \n"); gets (str); while (str [i] !=’\0’) { strlen++; i++; } fun(str, strlen); printf("\n*** display string ***\n"); puts (str); }
参考答案:[1] i<n [2] s[i]%2=0 [3] s[j]= ’\0’
解析: 填空]1:变量n为字符串的长度,所以字符数组的下标的取值范甲是从0到n-1。填空2:如果当前字符的ASCII码对2取余等于0,就说明这个字符的ASCII码为偶数,故不能删除,而是将它存于字符串s中。填空3:通过保留ASCII码为偶数的字符的力法,来实现删除ASCII码为奇数的字符的目的。处理结束后,还要在字符串s的最后加上结束标记符’\0’。