成员'find'的错误请求

时间:2013-09-30 18:13:39

标签: c++ string

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]'

字符串input和字符串code都包含string个值。

3 个答案:

答案 0 :(得分:2)

编译器告诉你code是一个字符串数组,所以你需要像

这样的东西
code[someIndex].find(o) == ....

答案 1 :(得分:0)

错误说明全部,codestd::string

的数组

使用

进行比较

code[i].find(o)

i =循环索引

答案 2 :(得分:0)

只需阅读错误:

  

错误:请求'code'中的成员'find',这是非类型的'std :: string [4]

它告诉你:

  • code的类型为std::string [4](这是一个包含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)或std::vector而不是。