Visual Studio C++字符串比较没有声明[重复]
Posted
技术标签:
【中文标题】Visual Studio C++字符串比较没有声明[重复]【英文标题】:Visual studio C++ string compare without declaration [duplicate] 【发布时间】:2016-02-11 16:05:04 【问题描述】:我想了解以下代码在 Microsoft Visual Studio C/C++(2012 版)中的结果。实际上,当生成解决方案时,结果是“1”(真)。但是,单词“a”小于 ASCII 表中的单词“z”。所以,结果应该是“0”(假)。即使我逆运算,意思是(“z”>“a”)。结果是“1”。我也试过这个操作(“a”
#include <iostream>
#include <string>
using namespace std;
int main()
cout << ("a" > "z") << endl;
【问题讨论】:
这是一个比较字符串地址的指针,而不是它们的内容。 在 SO:***.com/questions/7125697/… 中查看这个问题。这是关于 C 的,但你在 C++ 中的行为是一样的。 【参考方案1】:你的代码几乎和你写的一样:
const char s1[2] = 'a';
const char s2[2] = 'z';
int main()
cout << (s1 < s2) << endl;
所以你可以看到你的代码实际上是在比较两个字符数组的地址。
【讨论】:
以上是关于Visual Studio C++字符串比较没有声明[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Visual C++和Visual Studio有啥区别,大学生用哪个比较好?
用visual studio 2010编写C++突然输入中的很多错误不提示了
如何在 Visual Studio 2008 和 C++ 中显示希腊字符? [复制]