永发信息网

函数 fun 的功能是: 将 s 所指字符串中除了下标为奇数、同时 ASCII 值也为奇数的字符之外,

答案:1  悬赏:50  手机版
解决时间 2021-03-26 14:07
函数 fun 的功能是: 将 s 所指字符串中除了下标为奇数、同时 ASCII 值也为奇数的字符之外,
最佳答案
你打印不出结果的原因是func函数里for循环里i递增停不下来,并且使得形参s和t也越界了
for(i=0;i>=0;i++)
{
int j=0;
while(s[i]%2==1&&i%2==1)
{
t[j]=s[i];
j++;
}
}
你的i超过了100后,s[i]和t[j]就超过了你原本分配的内存,指针越界了追问
void fun(char *s,char t[])

{ int l=strlen(s);
int i,j;
for(i=0;i{
int j=0;
if((int)s[i]%2==1&&i%2==1)
{
t[j]=s[i];
j++;
}
}t[j]='';
}
我的fun函数改成这样还是打印不出来,而且出现程序崩溃。
追答我这里调试不了,你把以下函数的l打印出来,并在fun函数的结尾打印一个log,如printf("fun end\n");来按指示fun函数跑到结尾没有
void fun(char *s,char t[])

{
int l=strlen(s);
int i,j;
for(i=0;i {
int j=0;
if((int)s[i]%2==1&&i%2==1)
{
t[j]=s[i];
j++;
}
}
t[j]='\0';
}追问这个程序要求只能在fun函数里面做出来,不能编辑其他的部分程序,我不知道为什么跑不出来。难道while用错了。。。。追答我刚才帮你运行了下fun函数,修改如下

void fun(char *s,char t[])
{
int l=strlen(s);
int i,j=0;
for(i=0;i {
//int j=0;
if((int)s[i]%2==1&&i%2==1)
{
t[j]=s[i];
j++;
}
}
t[j]='\0';
}追问为什么注释掉int j=0;之后就好了呢?表示不是很理解,还请指点,谢谢你了。
int j=0;
while(s[i]%2==1&&i%2==1)
{
t[j]=s[i];
j++;
}这段程序不知道为什么会出错,跟局部变量有关是吗,还是有些不是很清楚,不过比之前懂了很多。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中午蒸的螃蟹晚上怎么吃
洛阳雪铁纳零售店(丹尼斯)地址在什么地方,
有主持人什么的会在胸前和肩上戴着毛绒玩具,
求通达信外包K线公式?
填的卡农和弦对吗?
三星的两款屏幕c24f396和c24f399,哪一款比较
万年堂的古方眼宝多少钱一盒
最好的我们耿耿用的什么手机
1993年生2016年阳历9月装修日子
2.2的洗车机用几平方的电线2项电的
我的处被男朋友用手指给破了破了会怎么
17点是几点是5点吗
15分也可以说成什么
f(x)中x^3的系数需要去展开行列式不?有没便
逆水寒装备什么属性好 装备重锻技巧及极品属
推荐资讯
2017天下3幽篁国孩子用什么武器
这把剪刀中间是什么弹簧啊?
密集烤房烤核桃的温湿度怎么控制
有吃“拜唐苹” 阿卡波糖片 的吗?
谁有《空少潘凯成》的视频,5~9 7~8,76 96
P锚具端部钢筋为什么裸露,这样和混凝土接触
酒店预定房间需要交钱吗?
推荐,评选,果然,居然,修改,改正,融洽,
高淳的俗语
什么电器品牌带圆圈和三角形的
茅台神舟 价格
请问SAP可以更改PO中数据的来源吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?