问答题
函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依此类推。最后t所指的数组中的内容应是:“BDF24”。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
printf("/nPlease enter string S:");
scanf("%s", s);
fun(s, t);
printf("/nThe result is:%s/n", t);
}
【正确答案】
【答案解析】void fun(char *s, char t[])
{
int i, j=0, n;
n=strlen(s);
for(i=0; i<n; i++)
if(s[i]%2==0)
{t[j]=s[i];
j++;
}
t[j]="/0";
}
[解析] 要删除ASCII码值为奇数的字符,也就是要保留ASCII码值为偶数的字符,由于最终是要求出剩余字符形成的新串,所以本题的算法是对原字符串从头到尾扫描,并找出ASCII码值为偶数的字符依次存入数组中。