【发布时间】:2018-03-16 18:47:14
【问题描述】:
假设我有一个存储在char c 中的输入,并且在有条件的情况下我需要检查它是否是两个不同字符中的一个,例如'n' 和'N'。很明显,我可以使用逻辑 OR 运算符创建条件:
if(c == 'n' || c == 'N')
...
但是,如果条件明显多于两个,则需要使用明显更多的逻辑运算符,并且编写、查看和编辑将变得乏味。有没有办法浓缩这个过程?为了使它看起来像这样:
if(c == '[N][n]')
...
有类似的东西存在吗?
【问题讨论】:
-
您可以设置并测试成员资格。
-
查看
std::string::find_any_*函数。 -
if(c = 'n' || c = 'N')-->if(c == 'n' || c == 'N') -
也许使用合适的容器和
std::any_of。 -
tolower(whatever) == 'lowercase_letter'