谁能帮我解释一下这道二级C语言题目?

时间:2013.10.22 发布人:fantasy__41

谁能帮我解释一下这道二级C语言题目?

已解决问题

谷歌fantasy__41用户在2013.10.22提交了关于“海神谁能帮我解释一下这道二级C语言题目?”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-12-10T15:16:48。题目是:
函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。
最后t所指的数组中的内容应是"BDF12345"。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
printf("\nPleaseenterstringS:");scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
NONO();
}
解题思路:
本题是从一个字符串按要求生成另一个新的字符串。我们使用for循环语句来解决这个问
题。
参考答案:
voidfun(char*s,chart[])
{
inti,j=0;
for(i=0;i<strlen(s);i++)
if(!((i%2)==0&&(s[i]%2)))t[j++]=s[i];
t[j]=0;
}
在这里的答案中1:(s[i]%2)是什么意思,这样的判断有意义吗?
2:最后的t[j]=0,这是表示结束吗?不是t[j]=‘\0’吗?希望大家能够帮助她。

详细问题描述及疑问:题目是:
函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。
最后t所指的数组中的内容应是"BDF12345"。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
printf("\nPleaseenterstringS:");scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
NONO();
}
解题思路:
本题是从一个字符串按要求生成另一个新的字符串。我们使用for循环语句来解决这个问
题。
参考答案:
voidfun(char*s,chart[])
{
inti,j=0;
for(i=0;i<strlen(s);i++)
if(!((i%2)==0&&(s[i]%2)))t[j++]=s[i];
t[j]=0;
}
在这里的答案中1:(s[i]%2)是什么意思,这样的判断有意义吗?
2:最后的t[j]=0,这是表示结束吗?不是t[j]=‘\0’吗?期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:纳米搜索