我正在尝试使用 IF 条件创建类似的东西:
if(mychar[i] = "+")
{
/* do something */
}
我想检查如果 char[number i-1] 是加号,但我不能在我的条件下正确定义加号:/
如果有人可以帮助我,我将不胜感激。
我正在尝试使用 IF 条件创建类似的东西:
if(mychar[i] = "+")
{
/* do something */
}
我想检查如果 char[number i-1] 是加号,但我不能在我的条件下正确定义加号:/
如果有人可以帮助我,我将不胜感激。
两个修复:
if(mychar[i] == '+')
^ use '' for char, and "" for strings
^ = is an assignment operator, == is a comparison operator
值得注意的是,虽然不推荐,但仅将赋值运算符用作布尔表达式是有效的,因为 0 被认为是 FALSE,而任何其他值都被认为是 TRUE。
为了防止这种使用一个等号的事故,只需这样做
if ('+' == mychar[i])
一旦你养成了放置常量 (char, int, double, ...) 的习惯,编译就会吐出你的错误。
鉴于您原来的 if 语句f(mychar[i]="+") { do sth }
:
首先,使用单个=
会导致赋值。在这种情况下,将“+”赋值给mychar[i]
.
C 将允许您在 if 语句中分配一个值,但我从不知道有人在实践中这样做过。您正在尝试比较值,因此您想使用==
而不是=
.
其次,您使用的是常量字符串"+"
而不是 char '+'
,因此编译器抱怨将指向字符串的指针分配给字符。
最后,在将值与常量进行比较时,我使用了一个构造。我把常数放在前面==
。
if('+' == mychar[1])
如果我快速键入并键入,if('+' = mychar[1])
我会在尝试将值分配给常量时收到编译时错误。