C++ 字符串比较运算符C++;

C++ 字符串比较运算符C++;,c++,arrays,string,compare,string-comparison,C++,Arrays,String,Compare,String Comparison,简单的问题 cout << "What color do you want to search for?" << endl; string key; string ARRAY[5]; cin >> key; for (int i = 0; i < 5; i ++) { if (ARRAY[i] == key) cout << "Found " << key << endl; else

简单的问题

cout << "What color do you want to search for?" << endl;
string key;
string ARRAY[5];
cin >> key;

for (int i = 0; i < 5; i ++)
{
  if (ARRAY[i] == key)
       cout << "Found " << key << endl;
  else
       cout << key << " not found" << endl;
}
cout键;
对于(int i=0;i<5;i++)
{
if(数组[i]==键)

cout该代码在语义上符合您想要执行的操作。
当心
cin>>键
:如果键入的内容包含空格,则
将只包含输入的第一个单词。

即使更改比较行,下一块中使用的逻辑也不正确

for (int i = 0; i < 5; i++)
{
    if (ARRAY[i] == key)
        cout <<"Found " << key <<endl;
    else
        cout << key <<" not found" <<endl;
}
您可以使用
std::find
(谢谢@LightnessRacesinOrbit)使代码紧凑:

if(std::find(std::begin(数组)、std::end(数组)、key)!=std::end(数组))

您是否将键声明为字符串?是的,我在代码前面将其声明为字符串,现在我将更改它。如果您的数组是字符串数组,那么应该可以工作。您可以显示数组声明吗?什么类型是数组?显示是声明和初始化。
数组的每个元素似乎都是空字符串。。或者您跳过了更多的code.Pl请发布一些真正的代码,这实际上说明了问题。
if(std::find(std::begin(ARRAY),std::end(ARRAY),key)!=std::end(ARRAY))cout
for (int i = 0; i < 5; i++)
{
    if (ARRAY[i] == key)
        cout <<"Found " << key <<endl;
    else
        cout << key <<" not found" <<endl;
}
bool found = false;
for (int i = 0; i < 5; i++)
{
   if (ARRAY[i] == key)
   {
      found = true;
      break
   }
}

if ( found )
   cout <<"Found " << key <<endl;
else
   cout << key <<" not found" <<endl;
if (std::find(std::begin(ARRAY), std::end(ARRAY), key) != std::end(ARRAY))
   cout << "Found " << key << endl;
else
   cout << key << " not found" << endl;