函数fun()的功能是:将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除;以此类推,最后t所指数组中的内容应是“135”。
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
main()
char s[100],t[100];void NONO();
printf("\nPlease enter string S:");scanf("%s",s);
fun(s,t);
printf("\nThe result is:%s\n",t);
参考答案:
int i,j=0;
for(i=A;i<strlen(s);i+=B)
If(i%B==0&&s[i]%B)t[j++]=s[i];
t[j]=’\0’;
解析:
该程序的功能是将字符串中除了下标为奇数、ASCII值也为奇数的字符外,其余的全都删除。在解题过程中,利用if判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。
①判断一个字符串中的某一字符下标i是否为奇数,可用“i%2!=0”来实现,也可以从下标1开始,每次移动2个位置;而判断字符的ASCII码值是否为奇数,则可用“s[j]%2!=0”来实现。
②对串s中各个字符串逐个进行判定,满足条件的字符就顺序放在新串t中,否则就不存放。
③所有字符处理完后,记得在新串t的末尾加上结束符“’\0’”。
[考点] 数组操作,函数传值,if条件语句,for循环语句。