Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何执行不区分大小写的字符串比较? 在这段代码中,我比较了两个字符串,我做对了,但是我不想考虑字母的情况。_C++_String_Visual C++ - Fatal编程技术网

C++ 如何执行不区分大小写的字符串比较? 在这段代码中,我比较了两个字符串,我做对了,但是我不想考虑字母的情况。

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) ==

例如:第一个字符串: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::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)) { 
    ...
}
...