鱼C论坛

 找回密码
 立即注册
查看: 1752|回复: 7

请问下面这个代码为什么字符“c”和“l”输出的时候还是大写的啊?

[复制链接]
发表于 2021-9-4 21:39:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#define LETTER 1
//(这个LETTER 1是什么意思啊?)



int main(void)
{
char str[20]=“C Language”
char c;
int i=0;
while( (c=str[i] ) !='\0' )
{
  i++;

#if LETTER
    if(c>='a'&&c<='z')
    {
       c=c-32;
    }
#else
    if(c>='A'&&c<='Z')
    {
       c=c+32;
     }
#end if
    printf("%c",c);
   
}
return 0;
}


请问上面这个代码,为什么#else的内容会不执行啊?为什么只执行了#if LETTER 里面的内容呢?而且上面的#define  LETTER 1 是什么意思啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-4 22:21:15 | 显示全部楼层
1、#define LETTER 1 相当于 声明一个全局变量LETTER,并为其赋值1
2、if LETTER,if (条件)  因为LETTER值为1 所以条件为真,执行if语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 10:40:06 | 显示全部楼层
大马强 发表于 2021-9-4 22:21
1、#define LETTER 1 相当于 声明一个全局变量LETTER,并为其赋值1
2、if LETTER,if (条件)  因为LETTER ...

他这个LETTER为什么要赋值为1呢?如果我赋值为2好像输出的结果也不影响啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-5 11:06:39 | 显示全部楼层
Zhangweisb111 发表于 2021-9-5 10:40
他这个LETTER为什么要赋值为1呢?如果我赋值为2好像输出的结果也不影响啊?

他的目的只是想让条件为真而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 11:51:40 | 显示全部楼层
大马强 发表于 2021-9-5 11:06
他的目的只是想让条件为真而已

那我想要#else的条件为真该怎么做呢?LETTER 2?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-5 12:51:40 | 显示全部楼层
本帖最后由 jhq999 于 2021-9-5 12:52 编辑
Zhangweisb111 发表于 2021-9-5 11:51
那我想要#else的条件为真该怎么做呢?LETTER 2?


除了等于0,都是真,你可以把0理解成“没有”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-5 12:56:40 | 显示全部楼层
Zhangweisb111 发表于 2021-9-5 11:51
那我想要#else的条件为真该怎么做呢?LETTER 2?

让条件为假就好了,你去了解下啥是条件为真,啥事条件为假
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 17:19:26 | 显示全部楼层
jhq999 发表于 2021-9-5 12:51
除了等于0,都是真,你可以把0理解成“没有”。

好的,懂了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表