P041 删除ASCII值为奇数的字符 ★★

03-程序设计题 软件121, 唐鼎威 1142浏览

所属年份: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';
}