问答题
1. 请编写函数proc(),该函数的功能是:将str所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若str所指字符串中的内容为“aBcdefg789”,其中字符B的ASCII码值为偶数…字符8的ASCII码值为偶数…其都应当删除,其他依此类推。最后t所指的数组中的内容应是“aceg79”。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序: #include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void proc(char*str, char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS");
printf("\nPlease enter string S:");
scanf("%s",str);
proc(str,t);
printf("\nThe result js:% s\n",t);
}
【正确答案】void proc(char *str, char t[])
{
int i=0;//s所指字符串中ASCII码值为偶数的字符删除,即对其什么也不做
for(;*str!='\0';str++)
if(*str%2==1)//把值为奇数的字符放到数组t中
t[i++]=*str;
t[i]='\0'; //最后用'\0'作为结束标志
}
【答案解析】 要把字符串str中ASCII码值为偶数的字符删除,需要判断字符串str中每一个字符的ASCII码值,将ASCII码值为奇数的字符放入字符串t中,对ASCII码值为偶数的字符不予处理。最后,为新的字符串t加上结束符。