-1

私はIF条件でそのようなものを作成しようとしています:

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

If char[number i-1] is plus を確認したいのですが、条件に plus を正しく定義できません:/

誰かが私を助けてくれれば幸いです。

4

3 に答える 3

7

2 つの修正:

if(mychar[i] == '+')
                ^ use '' for char, and "" for strings
             ^ = is an assignment operator, == is a comparison operator

推奨されませんが、0 は FALSE と見なされ、その他の値は TRUE と見なされるため、代入演算子をブール式としてのみ使用することは有効です。

于 2012-05-03T21:15:25.250 に答える
1

等号を 1 つ使用するというこのような事故を防ぐには、この方法を実行してください。

if ('+' == mychar[i]) 

定数 (char、int、double など) を配置するこの習慣に慣れると、コンパイルによって間違いが吐き出されます。

于 2012-05-03T21:19:18.273 に答える
0

元のifステートメントを考えるとf(mychar[i]="+") { do sth }

まず、single を使用する=と代入が発生します。この場合、 に「+」を割り当てmychar[i]ます。

C では if ステートメントで値を代入できますが、実際にそれを行った人を私は知りませんでした。値を比較しようとしているので、==代わりにを使用します=

"+"次に、 char の代わりに定数文字列を使用している'+'ため、コンパイラは、文字列へのポインターを文字に割り当てることについて不平を言っています。

最後に、値を定数と比較するときに構造を使用します。の前に定数を置き==ます。

if('+' == mychar[1])

すばやく入力して入力するとif('+' = mychar[1])、値を定数に代入しようとすると、コンパイル時エラーが発生します。

于 2012-05-03T21:28:49.650 に答える