所属年份:2010.9;2012.3;
编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。
例如,若s所指字符串中的内容为:”ABCDEFG12345″,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:”BDF24″。
#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); }
【考点分析】
本题考查:ASCII码值为奇数或偶数的判定方法,同时掌握删除字符的思想,即重新保留非删除字符。
【解题思路】
要删除ASCII码值为奇数的字符,也就是要保留ASCII码值为偶数的字符,由于最终是要求出剩余字符形成的新串,所以本题的算法是对原字符串从头到尾扫描,并找出ASCII码值为偶数的字符依次存入数组中。
【参考答案】
void fun(char *s, char t[]) { int i,j=0,n; n=strlen(s); for(i=0;i<n;i++) /*找出ASCII码值为偶数的字符依次存入数组中*/ if (s[i]%2==0) { t[j]=s[i]; j++; } t[j]='\0'; }