当前位置: 代码迷 >> C语言 >> [求助]从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下功能: ...
  详细解决方案

[求助]从键盘输入一串字符,以Esc作为结束符,用条件编译方法实现以下功能: ...

热度:198   发布时间:2007-08-28 11:59:15.0
[求助]从键盘输入一串字符,以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  

----------------解决方案--------------------------------------------------------
#define CHANGE 1 /* 转换*/
#define CHANGE 0 /* 不转换,即原码输出*/

这个就能够直接用了吗?
----------------解决方案--------------------------------------------------------
回复:(fwhao)#define CHANGE 1 /* 转换*/#define ...
请楼主把题目的文字不要写出错别字出来,有时候会很难理解,因为会看成多个意思
----------------解决方案--------------------------------------------------------

#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

}

改一下你的程式


----------------解决方案--------------------------------------------------------
以下是引用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

}

改一下你的程式

这个程序?能运行么?


----------------解决方案--------------------------------------------------------
你觉得错在什么地方?
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
getch();
是TC对C89标准函数库的扩充.你不了解还是说得过去的.
但对预处理指令,如:#if #ifdef #else ......不知道,你应该补补这方面的课了



----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
用TC
----------------解决方案--------------------------------------------------------