代码有什么问题。为什么条件语句不能在printf内执行。
#include<stdio.h>
int main()
{
int ch,hc;
ch=getchar();
printf("character entered by you is :- %c\n",ch);
printf("letter in capital is %c\n",(((char(ch) >='a') && (char(ch)<='z'))?(ch-32):(ch)));
return 0;
}
请帮助我理解。
答案 0 :(得分:1)
char
不是函数。您无法致电char(ch)
。如果要进行类型转换,可以这样进行:
(char) ch
此外,您不必将int
强制转换为char
即可与字符进行比较。这是完全有效的:
ch >= 'a'
即使ch
是int
。
因此,您知道了这一点,就可以将printf
行更改为:
printf("letter in capital is %c\n", ( ch >= 'a' ) && (ch <= 'z') ? (ch-32) : (ch));