?: 是C语言中的三元运算符(也叫条件运算符)
?: 是C语言中的三元运算符(也叫条件运算符),它是一个非常有用的条件判断语法。
语法格式
条件表达式 ? 表达式1 : 表达式2
工作原理
- 如果条件表达式为真(非0),返回表达式1的值
- 如果条件表达式为假(0),返回表达式2的值
在你的代码中的应用
islower(s[i]) ? toupper(s[i]) : s[i]
这行代码的含义是:
- 条件:
islower(s[i])- 检查字符是否为小写字母 - 如果为真:返回
toupper(s[i])- 转换为大写字母 - 如果为假:返回
s[i]- 保持原字符不变
等价的if-else写法
// 使用三元运算符(简洁)
printf("%c", islower(s[i]) ? toupper(s[i]) : s[i]);
// 等价的if-else写法(冗长)
if (islower(s[i])) {
printf("%c", toupper(s[i]));
} else {
printf("%c", s[i]);
}
其他常见例子
// 找出两个数的最大值
int max = (a > b) ? a : b;
// 判断奇偶
char* result = (num % 2 == 0) ? "偶数" : "奇数";
// 设置默认值
int value = (input != 0) ? input : 10;
三元运算符的优势是代码简洁,特别适合简单的条件赋值操作。

浙公网安备 33010602011771号