A-A+

请补充函数fun() 该函数的功能是:把ASCII码为奇数的字符从字符串str中删除 结果仍

2022-08-06 00:41:17 问答库 阅读 174 次

问题详情

请补充函数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;【 】;i++)
{
if(【 】)
s [j++]-s [i];
}
【 】;
}
main ()
{
int i=0, strlen=0;
char str [N];
clrscr ();
printf ("nInput a string: n");
gets (str);
while (str [i] !="")
{
strlen++;
i++;
}
fun(str, strlen);
printf("n*** display string ***n");
puts (str);
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:i<ns[i]%2=0s[j]= '\0'
i<ns[i]%2=0s[j]= '\0' 解析:第一空:变量n为字符串的长度,所以字符数组的下标的取值范甲是从0到n-1。第二空:如果当前字符的ASCII码对2取余等于0,就说明这个字符的ASCII码为偶数,故不能删除,而是将它存于字符串s中。第三空:通过保留ASCII码为偶数的字符的力法,来实现删除ASCII码为奇数的字符的目的。处理结束后,还要在字符串s的最后加上结束标记符'\0'。

考点:函数,奇数