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++ 中显示希腊字符? [复制]

如何用visual studio2012编c++程序?

我可以在没有 Visual Studio 的情况下使用 Visual C++ 编译器吗? [关闭]

在没有 Visual Studio 的情况下使用 C++ 安装 Opencv