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