我需要能够接受类似的答案在C + +中,而不使用“||”酒吧

问题描述:

我希望找出是否有一个命令在C++中,将发现类似的变化输入和接受这些以及在if语句中的确切答案。我需要能够接受类似的答案在C + +中,而不使用“||”酒吧

例如:
如果我有“喜”
用户类型和if语句需要接受“喜”是有效的
我怎样才能使它也只是不必在所有类型我自己的变化是什么“||”确实。

谢谢你们。

+2

你想不区分大小写的比较呢?如果是这样,请看[这里](http://stackoverflow.com/q/11635/380621) – tjm 2010-12-18 02:31:14

+1

不是C++有一些函数来改变字符串的大小写吗? – 2010-12-18 02:32:33

+0

@Ignacio - 在标准库中?没有一个功能。有toupper和tolower对单个字符起作用。您可以将它们与变换结合起来,以便对整个字符串进行操作。或者你可以使用boost :: to_upper或boost :: to_upper_copy。 – 2010-12-18 02:43:26

如何计算某种edit distance。您可以用非常小的距离来减少大小写变化,并接受所有低于特定阈值的输入。

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

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

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

实际上,任何有问题的国家字符串都可以简单地避免。

干杯&第h。,

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

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

std::transform(answer.begin(), answer.end(), answer.begin(), ::tolower); 
if (answer == "hi") 
{ 
    std::cout << "Wrong answer\n"; 
}