1. ホーム
  2. c++

[解決済み] オペランドの型に互換性がない("char "と "const char*")。

2022-02-28 13:02:28

質問

以下のようなエラーが発生するのですが...。

オペランドの型に互換性がありません ("char" と "const char*")

... if 文を実行しようとしたとき。入力値がどのように格納されるかを理解していないのだと思いますが、一致する型にキャストすればいいのでしょうか?

再現するためのコード例は

char userInput_Text[3];

if (userInput_Text[1] == "y") {
    // Do stuff.
}

何が原因かよくわかりません。1つの型はcharで、もう1つはconst charポインタのようですが、よくわかりません。参考までに、このエラーは配列を使っていないときにも発生します)。

また、ヒントやフィードバックをいただけると幸いです。

解決方法は?

二重引用符はショートカット構文で c-文字列 C++の場合。もし、1文字を比較したい場合は、代わりにシングルクォートを使用しなければなりません。コードをこのように変更するだけでよい。

char userInput_Text[3];

if (userInput_Text[1] == 'y') { // <-- Single quotes here.
    // Do stuff.
}

参考までに。

  • "x" = const char *
  • 'x' = char