0

我希望找出 C++ 中是否有一个命令可以找到类似的输入变化并接受这些变化以及 if 语句中的确切答案。

例如:
如果我有一个用户输入“Hi”
,并且 if 语句需要接受“hi”才能有效
,我如何才能做到这一点,除了不必自己输入所有变体,即“||” 做。

多谢你们。

4

4 回答 4

2

如何计算某种编辑距离。您可以用非常小的距离对案例变化进行加权,并接受低于某个阈值的所有输入。

于 2010-12-18T02:30:03.703 回答
0

如果有很多变体,并且枚举它们很麻烦,您可能需要考虑通过正则表达式解析器运行输入。一个轻量级的是T-Rex

于 2010-12-18T03:07:32.603 回答
0

大写字符串,然后比较大写字符串。

请注意,理论上这可能会与大写的各种国家语言约定相冲突,这似乎是 C++ 标准库对大写的支持非常差的原因之一(如果它不能 100% 完美地完成,那么我们不要这样做) .

但是,在实践中,可以简单地避免任何有问题的国家字符串。

干杯&hth.,

于 2010-12-18T03:35:02.323 回答
0

小写输入字符串。
然后比较:

std::string   answer;
std::cin >> answer;

std::transform(answer.begin(), answer.end(), answer.begin(), ::tolower);
if (answer == "hi")
{
    std::cout << "Wrong answer\n";
}
于 2010-12-18T17:54:28.660 回答