C++ 如何执行不区分大小写的字符串比较? 在这段代码中,我比较了两个字符串,我做对了,但是我不想考虑字母的情况。
例如:第一个字符串:aaaa,第二个字符串:aaaa。输出应为0或等于0 有什么办法可以解决这个问题吗?C++ 如何执行不区分大小写的字符串比较? 在这段代码中,我比较了两个字符串,我做对了,但是我不想考虑字母的情况。,c++,string,visual-c++,C++,String,Visual C++,例如:第一个字符串:aaaa,第二个字符串:aaaa。输出应为0或等于0 有什么办法可以解决这个问题吗? #包括 #包括 #包括 使用名称空间std; int main() { cout x; 库蒂; 从溶液中提取 if(std::toupper(x)=std::toupper(y)){ cout您可以使用std::tolower将字符串x和y转换为其小写表示形式,然后比较两个小写字符串 #include <algorithm> ... if (std::tolower(x) ==
#包括
#包括
#包括
使用名称空间std;
int main()
{
cout x;
库蒂;
从溶液中提取
if(std::toupper(x)=std::toupper(y)){
cout您可以使用std::tolower
将字符串x
和y
转换为其小写表示形式,然后比较两个小写字符串
#include <algorithm>
...
if (std::tolower(x) == std::tolower(y)) {
...
}
...
#包括
...
如果(std::tolower(x)=std::tolower(y)){
...
}
...
在比较之前,您可以将两个输入字符串都转换为小写;请参阅,例如,@dfri否,这是一个糟糕的解决方案。对于某些国际字符串,这将失败。@KonradRudolph啊,我不知道std::basic_string
的情况是这样的,谢谢。在比较它们之前,请使用小写2个字符串。@dfri我关心的问题与std>无关在每种编程语言中都适用于每种字符串类型。当然,C++代码字符串更坏,因为<>代码> ToWORE 和 TopPue/COD>被破坏。不要使用<代码> ToWoW< /Cube >或 ToupPu/Cuth>实现不区分大小写的比较。这将失败,<>代码> x=“STASSE”< /C> >和<>代码> y=“straße”
,应该比较相等。但这不是初始问题的一部分。不要使用tolower
或toupper
来实现不区分大小写的比较。对于x=“STRASSE”
和y=“straße”
,应该比较相等。为什么“STRASSE”和“straße”应该相等?”SS“不等于“ß”。因为这是德语拼字法规则(DIN 5007-1)所说的。这是错误的。德语中不存在“Strasse”一词。“Straße”是正确的。目前,已经引入了大写字母“ß”。这一切都非常无关。字符串比较(通常)并不局限于“现有”字(对于给定的“现有”定义而言),它控制字符串排序。否则你也可以说“straße”在德语中不是一个单词,只有“straße”是。然而,如果你走过你的城镇,你应该注意到拼写“STRASSE”实际上是存在的,即使是在高度官方的手工艺品中。
if (std::toupper(x) == std::toupper(y)) {
cout << "0" << endl;
}
#include <algorithm>
...
if (std::tolower(x) == std::tolower(y)) {
...
}
...