在C中创建好的IF语句有困难

时间:2012-05-03 21:14:41

标签: c if-statement char

我正在尝试用IF条件创建类似的东西:

if(mychar[i] = "+")
{
   /* do something */
}

我想检查一下char [number i-1]是加号但是我不能正确地定义加号:/

如果有人能帮助我,我将不胜感激。

3 个答案:

答案 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]),我会在尝试为常量赋值时遇到编译时错误。