| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3056 人关注过本帖
标题:运行结果出现'烫'字
取消只看楼主 加入收藏
Oscar_0049
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-29
收藏
 问题点数:0 回复次数:2 
运行结果出现'烫'字

请编写函数fun,其功能是将S所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余全部删除;串中剩余字符所形成的一个新串放在t所指的数组中。

#include <stdio.h>
#include <string.h>

void fun(char *s, char t[])
{
int i,j=0;
for(i=0;s[i];i+=2)
if(s[i]%2==0)
t[j++]=s[i];
t[j]='\0';
}

main()
{
char s[100], t[100];
printf("\nPlease enter string S:");
scanf("%s", s);
fun(s, t);
printf("\nThe result is : %s\n", t);
}

输入ABCDEFG123456
输出246烫烫烫烫烫烫烫烫烫烫烫烫烫

搜索更多相关主题的帖子: 结果 运行 
2007-07-21 19:16
Oscar_0049
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-29
收藏
得分:0 
大家帮忙看看哈?什么原因?

如果不能改变环境,那就要适应环境!
2007-07-21 19:16
Oscar_0049
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-6-29
收藏
得分:0 
以下是引用boot2046在2007-7-23 17:12:01的发言:
越界了
for(i=0;s[i];i+=2)
你的意思应该是当s[i]为'\0'的时候就结束for循环,但是你的i+=2,使i的步进为2就有可能跳过s[i]='\0'的情况,所以这时候你还得测试一下s[i+1]的情况是否为'\0'
for(i=0;s[i]&&s[i+1];i+=2)


不是从字符串结束开始,以后都是'\0'么?


如果不能改变环境,那就要适应环境!
2007-07-23 21:00
快速回复:运行结果出现'烫'字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved