Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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++书工作时,我遇到了一个使用两个字符串比较的例子。我仔细研究了代码,发现这两条语句的计算结果并不相同。有人能解释在C++中使用字符串< > < /p>会发生什么吗? string s = "fool"; cout << ("fool" < "ape"); // returns true (1) cout << (s < "ape"); //returns false (0)_C++ - Fatal编程技术网

有人能解释在C++中使用字符串时使用什么? 在通过C++书工作时,我遇到了一个使用两个字符串比较的例子。我仔细研究了代码,发现这两条语句的计算结果并不相同。有人能解释在C++中使用字符串< > < /p>会发生什么吗? string s = "fool"; cout << ("fool" < "ape"); // returns true (1) cout << (s < "ape"); //returns false (0)

有人能解释在C++中使用字符串时使用什么? 在通过C++书工作时,我遇到了一个使用两个字符串比较的例子。我仔细研究了代码,发现这两条语句的计算结果并不相同。有人能解释在C++中使用字符串< > < /p>会发生什么吗? string s = "fool"; cout << ("fool" < "ape"); // returns true (1) cout << (s < "ape"); //returns false (0),c++,C++,库特 库特 这意味着您正在比较两个指针,因为它们是字符串文本。请在上查看更多关于此的信息 这意味着您正在比较两个指针,因为它们是字符串文本。请参阅。傻瓜和猿是字符串文字,它们的类型实际上是常量字符的内置类型数组,因此您可以得到运算符的内置定义傻瓜和猿是字符串文字,它们的类型实际上是常量字符的内置类型数组,因此,你得到了操作程序的内置定义,傻瓜的可能复制是字符数组而不是字符串,这是C的一个保留。你可以在现代C++中使用傻瓜,这实际上是一个字符串。@ JunnWiNeSHIRT:它不是一个复制品,因

库特 库特 这意味着您正在比较两个指针,因为它们是字符串文本。请在上查看更多关于此的信息


这意味着您正在比较两个指针,因为它们是字符串文本。请参阅。

傻瓜和猿是字符串文字,它们的类型实际上是常量字符的内置类型数组,因此您可以得到运算符的内置定义傻瓜和猿是字符串文字,它们的类型实际上是常量字符的内置类型数组,因此,你得到了操作程序的内置定义,傻瓜的可能复制是字符数组而不是字符串,这是C的一个保留。你可以在现代C++中使用傻瓜,这实际上是一个字符串。@ JunnWiNeSHIRT:它不是一个复制品,因为它只讨论了一个包含STD::string的情况。在这里,混乱的情况没有STD::字符串,它正在创建问题。傻瓜可能的复制是字符数组而不是字符串,这是C的保留。在现代C++中,傻瓜可以使用它,实际上是一个字符串。@ JunnWiNeSHIRT:它不是重复的,因为这只讨论了涉及STD::string的情况。在这里,令人困惑的案例没有std::string,这就产生了问题。这比不确定哪个更大更糟糕。因为这两个指针不是来自同一个数组或完整对象,所以它实际上是未定义的行为。哎呀,新版本的标准实际上将其从未定义的行为更改为未指定的结果。:D。嗯,这是合理的。依我看,如果我们试着比较两个常量字符*,可能会有一些未指定的结果。这比不确定哪个更大更糟糕。因为这两个指针不是来自同一个数组或完整对象,所以它实际上是未定义的行为。哎呀,新版本的标准实际上将其从未定义的行为更改为未指定的结果。:D。嗯,这是合理的。在我看来,如果我们尝试比较两个常量char*,它可能会有一些未指定的结果。
cout << (s < "ape"); //returns false (0)
cout << ("fool" < "ape"); // returns true (1)