如何使用标志变量为旨在搜索数组以查找通过用户输入提供的字符串的程序生成输出?

Posted

技术标签:

【中文标题】如何使用标志变量为旨在搜索数组以查找通过用户输入提供的字符串的程序生成输出?【英文标题】:How do I use flag variables to produce output for a program designed to search an array for a string provided via user input? 【发布时间】:2020-09-18 21:59:40 【问题描述】:

我正在处理一项未评分的练习作业,并且正在为所需的 C++ 代码而苦苦挣扎。赋值参数是编写一个程序,该程序接受用户输入提供的字符串,搜索包含 10 个元素的数组,并根据用户输入是否与数组中包含的字符串匹配来设置标志变量的值。如果没有找到该字符串,则程序会输出一个短语,这通过引用标志变量的值来确定。

到目前为止,我有以下代码:

// MichiganCities.cpp - This program prints a message for invalid cities in Michigan.  
// Input:  Interactive
// Output:  Error message or nothing

#include <iostream>
#include <string>
using namespace std;

int main() 

   // Declare variables
   string inCity;     // name of city to look up in array
   const int NUM_CITIES = 10;
   // Initialized array of cities
   string citiesInMichigan[] = "Acme", "Albion", "Detroit", "Watervliet", "Coloma", "Saginaw", "Richland", "Glenn", "Midland", "***lyn"; 
   bool foundIt = false;  // Flag variable
   int x;             // Loop control variable

   // Get user input
   cout << "Enter name of city: ";
   cin >> inCity; 
    
   // Write your loop here  
   for(x=0; x<NUM_CITIES; x++)
      // Write your test statement here to see if there is 
      // a match.  Set the flag to true if city is found. 
     if(citiesInMichigan[x] == inCity)[
       set foundIt = true,;
       break;
     ]
 
            
   // Test to see if city was not found to determine if 
   // "Not a city in Michigan" message should be printed. 
if(foundIt == false)
  cout << "City not in Michigan.";
  return 0;


 // End of main() 

我相当确定我在这里所拥有的应该做我想做的事情,但是我在奇怪的地方收到了请求括号 [] 的语法错误,而且我对自己做错了什么感到迷茫。

我不是在找人提供正确的代码让我简单地复制,因为我正在努力学习。我正在寻找能够解释我做错了什么、我违反了哪些规则和/或我可以采取哪些步骤来让这段代码正常工作的人。

【问题讨论】:

这是你做错最多的地方:看起来你先写了很多代码,然后才尝试查看它是否编译。所以你得到一堆错误,这让你感到困惑。专业程序员不会以这种方式编写代码。他们先写几行代码,编译它,运行它,测试并验证它们是否按预期工作,然后写几行代码,依此类推。尝试使用这种方法编写代码,从头开始,看看你能走多远。 您在 if 语句块中使用方括号而不是花括号,试图用一些 set 关键字设置变量,并且在分号前有一个虚假的逗号。我投票结束,因为错字。 您应该发布编译器输出。唯一明显的问题是拼写错误。 set foundIt = true,; 应该是foundIt = true; 【参考方案1】:

你有正确的想法,但有几个语法错误。

首先,C++(和许多其他语言)中的块用花括号()表示,而不是像您的情况那样的方括号。 其次,通过赋值运算符=(即somevariable = somevalue)为变量设置值。 C++ 中没有“set”关键字。

要将这两点放在一起,循环内的条件应如下所示:

if (citiesInMichigan[x] == inCity) 
    foundIt = true;
    break;

【讨论】:

以上是关于如何使用标志变量为旨在搜索数组以查找通过用户输入提供的字符串的程序生成输出?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 基于变量参数查找xml子项

如何从用户文本输入中搜索数据库记录以查找匹配项并避免提取信息? (PHP)

如何通过按下按钮从 tkinter 输入字段返回变量以在另一个函数中使用?

用户使用调查报告

如何在 C# 数组中查找和显示特定值

Discord.js,通过数组中的 ID 查找用户是不是具有角色