我需要能够接受类似的答案在C + +中,而不使用“||”酒吧
问题描述:
我希望找出是否有一个命令在C++中,将发现类似的变化输入和接受这些以及在if语句中的确切答案。我需要能够接受类似的答案在C + +中,而不使用“||”酒吧
例如:
如果我有“喜”
用户类型和if语句需要接受“喜”是有效的
我怎样才能使它也只是不必在所有类型我自己的变化是什么“||”确实。
谢谢你们。
答
大写字符串,然后比较大写字符串。
请注意,理论上这可能会与各种国家语言约定相冲突,这似乎是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";
}
你想不区分大小写的比较呢?如果是这样,请看[这里](http://stackoverflow.com/q/11635/380621) – tjm 2010-12-18 02:31:14
不是C++有一些函数来改变字符串的大小写吗? – 2010-12-18 02:32:33
@Ignacio - 在标准库中?没有一个功能。有toupper和tolower对单个字符起作用。您可以将它们与变换结合起来,以便对整个字符串进行操作。或者你可以使用boost :: to_upper或boost :: to_upper_copy。 – 2010-12-18 02:43:26