gpt4 book ai didi

c - 条件运算符中的这个赋值有什么问题?

转载 作者:行者123 更新时间:2023-12-01 15:07:13 25 4
gpt4 key购买 nike

有一个错误。下面代码中给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);

最佳答案

a[i]>90 ? a[i]=a[i]-32 : a[i]=a[i]+32;

评估为

a[i]>90 ? (a[i]=a[i]-32) : (a[i]=a[i]+32);

因为 = 的优先级低于 ?:。在标准 C 中,您不能像上面那样编写它,尽管一些编译器允许它作为扩展。

您可以将其编写为更具可读性(和可移植性)

a[i] += a[i] > 90 ? -32 : +32;

关于c - 条件运算符中的这个赋值有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45348272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com