c++ - 关于使用 || 的 if/else 代码的问题 和 &&
问题描述
#include <iostream>
#include <string>
using namespace std;
int main()
{
string vegetarian, vegan, gluten_free;
cout << "Welcome to Restaurant Selector!" << endl;
cout << "Are you a vegetarian?"<<endl;
cin >> vegetarian;
cout << "Are you a vegan?"<<endl;
cin >> vegan;
cout << "Are you gluten-free?"<<endl;
cin >> gluten_free;
if (gluten_free == "yes" && vegan == "yes" && vegetarian == "yes" )
{
cout<<"The Chef's Kitchen"<<endl;
}
else if (gluten_free == "yes" && vegan == "yes" )
{
cout<<"Vegan's lair"<<endl;
}
else if (gluten_free == "yes")
{
cout<<"Starbuck's"<<endl;
}
else if ( gluten_free == "no" || "No" && vegan == "no" || "No" && vegetarian == "no"||"No")
cout<<"Burger King"<<endl;
return 0;
}
如何获得第一个 if 表达式以使用 yes 的多种变体。我希望它包括:是的,是的,是的。但是我只能在两个字符串上使用 or 运算符。我也想为后续行执行此操作。我应该怎么办?
解决方案
如何获得第一个 if 表达式以使用 yes 的多种变体。我希望它包括:是的,是的,是的。
在比较之前将输入字符串转换为小写。
一个简单的例子:
auto tolower = [](unsigned char c){
return std::tolower(c);
};
std::transform(
vegan.begin(),
vegan.end(),
vegan.begin(),
tolower
);
请注意,像这样的简单字符串处理仅适用于固定宽度编码,而不适用于 unicode。
推荐阅读
- mysql - Nextcloud (docker) 无法连接到 Mysql (docker) SQLSTATE[HY000] [2002]
- typescript - tsc 忽略 .yaml 文件,即使它设置为包含在 tsconfig.json 中
- android - SetForegroundAsync 在 Workmanager 的 ListenableWorker 中创建前台服务不起作用
- php - 我想为安装在一个 WordPress 中的 2 个自定义主题创建 ACF
- javascript - iink - 无效的箭头函数参数
- ajax - 如何使用 Laravel 分页执行 select2 结果无限滚动
- javascript - 每次构建后如何将路由器视图发布到后端一次
- python - requests 库的 session 对象是如何工作的?
- javascript - js无法加载模块
- mysql - 如何替换数据库表中的“+”和“-”号