【发布时间】:2018-01-03 00:49:55
【问题描述】:
有一个错误。 在下面的代码中给 a[i] 赋值有错吗? 还是条件运算符有问题?
#include<stdio.h>
#include<string.h>
int main(){
char a[12]="sumit tyagi";
int i=0;
while(a[i]!='\0'){
a[i]>90 ? a[i]=a[i]-32 : a[i]=a[i]+32; //error in this line
i++;
}
printf("\n %s",a);
【问题讨论】:
-
您可能对运算符优先级有疑问。你使用
?:的方式有点奇怪。使用简单的ìf ... else...声明可能会更好 -
a[i] = a[i]>90 ? a[i]-32 : a[i]+32; -
不要滥用三元运算符。
标签: c compiler-errors variable-assignment conditional-operator lvalue