| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3372 人关注过本帖
标题:[求助]从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下功能: ...
只看楼主 加入收藏
水清
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-19
收藏
 问题点数:0 回复次数:19 
[求助]从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下功能:一位原
从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下功能:一位原码输出;一为将其中的小写字母转换成大写字母,其他的字符不变。用#define命令来控制是否要转换。例如:
#define CHANGE 1 /* 转换*/
#define CHANGE 0 /* 不转换,即原码输出*/


以下使我编的,错是肯定错的了,请大家帮忙看看!!!谢谢!!(这是题目我们课本上的原题,所以题目没错)
#include "stdio.h"
#define CHANGE 1
#define CHANGE 0
main()
{
char s[50],i;
while(getchar()!='\Esc')
gets(s);
for(i=0;i<50;i++)
if(s[i]>'a'&&s[i]<'z')
CHANGE 1;
printf("%s",strupr(s));
else CHANGE 0;
}
搜索更多相关主题的帖子: Esc 字符 键盘 define CHANGE 
2007-08-28 11:59
fwhao
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-8-13
收藏
得分:0 
#define CHANGE 1 /* 转换*/
#define CHANGE 0 /* 不转换,即原码输出*/

这个就能够直接用了吗?
2007-08-28 13:43
你的鱼帅吗
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-31
收藏
得分:0 
回复:(fwhao)#define CHANGE 1 /* 转换*/#define ...
请楼主把题目的文字不要写出错别字出来,有时候会很难理解,因为会看成多个意思
2007-08-28 14:10
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include "stdio.h"
#define CHANGE 1

#define Esc 0x1b

main()
{
char s[50];
int i=-1;

do
{
s[++i]=getch();
}while(s[i]!=Esc&&i<50);

s[i]='\0';
#if CHANGE ==1
printf("%s",strupr(s));
#endif
#if CHANGE ==0
printf("%s",s);
#endif

}

改一下你的程式


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-08-28 14:19
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
以下是引用Knocker在2007-8-28 14:19:24的发言:

#include "stdio.h"
#define CHANGE 1

#define Esc 0x1b

main()
{
char s[50];
int i=-1;

do
{
s[++i]=getch();
}while(s[i]!=Esc&&i<50);

s[i]='\0';
#if CHANGE ==1
printf("%s",strupr(s));
#endif
#if CHANGE ==0
printf("%s",s);
#endif

}

改一下你的程式

这个程序?能运行么?


You have lots more to work on! Never give up!c language!
2007-08-28 14:37
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
你觉得错在什么地方?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-08-28 16:24
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 

这个getch();
第一没有头文件,感觉在这里不好
已经#define CHANGE 1
下面用
#if CHANGE ==1
printf("%s",strupr(s));
#endif
#if CHANGE ==0
printf("%s",s);
#endif
这个
我也弄不懂,我这没编译器,但我感觉你那程序运行不了


You have lots more to work on! Never give up!c language!
2007-08-28 17:23
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
getch();
是TC对C89标准函数库的扩充.你不了解还是说得过去的.
但对预处理指令,如:#if #ifdef #else ......不知道,你应该补补这方面的课了



九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-08-28 19:06
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 

哦,我还特意下了个编译器,忙了半天,这里什么功能都锁了,好不容易找到方法可以安装
我知道getch()的头文件是 conio.h
这种条件编译我看过,虽然不怎么用,但#if CHANGE ==0这能有真的时候么
我也编译了一下,输入不进去字符
我把getch()改了getchar()
试了,还有一点
程序根本不运行到条件编译
难道我错了?
我来学习了
请具体指教你那程序好么?
我来学习了,我编程没怎么用过条件编译,我c学习的时间还比较短,请指教了


You have lots more to work on! Never give up!c language!
2007-08-28 19:13
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
用TC

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-08-28 19:16
快速回复:[求助]从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下 ...
数据加载中...
 
   



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

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