c语言中【putchar(c+'A'-'a'):】后面为啥要加冒号?

如题所述

c>='a'&&c<='z'?
putchar(c+'A'-'a'):
putchar(c);
这三行是一句话,由于太长被分成了三行来写了,实际是:
c>='a'&&c<='z'?putchar(c+'A'-'a'):putchar(c);
这是一个三目运算符的使用,意思就是,如果c>='a'&&c<='z'成立,就执行putchar(c+'A'-'a'),否则就执行putchar(c)
三行是一句话
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-09
不会吧,你确定你用VC能运行?
putchar(int);你看看这个代码
#include <stdio.h>

int main(void)
{
int c = 81;
putchar(c+'A'-'a');
putchar(10);
return 0;
}
语句是以分号结束的,冒号是用在switch(){case ():()}里面的追问

这个是什么?我粘贴了一下,运行后出现了数字1

第2个回答  2013-05-09
是分号把?

最好把完整程序放上来追问

#include"stdio.h"
int main()
{
int c;
printf("input a charctor:");
c=getchar();
c>='a'&&c<='z'?
putchar(c+'A'-'a'):
putchar(c);
putchar('\n');
return 0;
}
后面是分号

追答

c>='a'&&c ? :
其中表达式1为布尔表达式, 或真或为假. 若表达式1为真, 则返回表达式2的值作为整个条件表达式的值. 若条件为假, 则返回表达式3的值. 例如
max = (a > b) ? a : b ;

第3个回答  2013-05-09
C语音中,如果是标准的一句话,后面不能是冒号,只能是分号;如果是?: 的运算法的话,是允许的
第4个回答  2013-05-09
应该是分好吧,每个C语句都要用分号结束追问

不是分号啊,我还专门在vc里敲了一遍

追答

c>='a'&&c<='z'? putchar(c+'A'-'a'): utchar(c);
你用了条件运算符 ...?...:...;

第5个回答  2013-05-09
没有这种说法,放完整代码吧
相似回答