将用户输入与结构数组中的值进行比较
Posted
技术标签:
【中文标题】将用户输入与结构数组中的值进行比较【英文标题】:Comparing user input to value in struct array 【发布时间】:2020-04-14 03:45:17 【问题描述】:我正在为一个班级开展项目,我必须在其中创建一个销售点系统。我正在尝试遍历该范围,直到用户输入选项(例如“B”)与 menuOption 匹配。我试过'strcmp'无济于事,而且我对C++还很陌生,所以我的知识仍然很薄弱。我的侦探技能也没有产生任何解决方案,因此将不胜感激。
我知道下面的代码是错误的,因为它试图比较“char”和“char *”,但这是我想要完成的想法。
for (int i = 0; i < MAX; i++)
if ( choice[0] == options[i].menuOption)
subTotal += options[i].price
itemsOrdered.push_back(options[i].optionName)
也许我做错了。
struct Menu
char menuOption[1];
string optionName;
float price;
;
也可以选择:
char choice[1]
【问题讨论】:
【参考方案1】:由于您决定选择和菜单选项都是一个 char ,因此只能像这样使用 char :
struct Menu
char menuOption;
string optionName;
float price;
;
char choice;
然后你像这样比较:
if ( choice == options[i].menuOption)
如果您希望您的代码按原样工作,只需更改此行:
if ( choice[0] == options[i].menuOption)
收件人:
if ( choice[0] == options[i].menuOption[0])
【讨论】:
天哪,我是个白痴……非常感谢@dev65,我很感激。以上是关于将用户输入与结构数组中的值进行比较的主要内容,如果未能解决你的问题,请参考以下文章