string input;
string code[4];
if (code.find(o) == input.find(o))
{
}
この行では、次のエラーが表示されます。request for member 'find' in 'code', which is of non-class type 'std::string [4]'
stringinput
と string の両方code
にstring
値が含まれています。
コンパイラはそれが文字列の配列であることを伝えているcode
ので、次のようなものが必要です
code[someIndex].find(o) == ....
エラーは all 、code
の配列ですstd::string
を使って比較
code[i].find(o)
i
= ループ インデックス
エラーを読んでください:
エラー: 非クラス型 'std::string [4] である 'code' 内のメンバー 'find' の要求
それはあなたに次のことを伝えています:
code
タイプです(4つのオブジェクトstd::string [4]
の配列です)std::string
find
要求しているメンバー関数が見つかりませんでした呼び出したい文字列の正しいインデックスを選択するfind
か、ループを実行します。
for (int i = 0; i < 4; i++)
if (code[i].find(o) == input.find(o))
// ...
可能であれば、C スタイルの配列を避けてstd::array
(C++11 以降) orstd::vector
を代わりに使用するようにしてください。