【发布时间】:2021-10-24 16:32:50
【问题描述】:
我想知道当我们有 s1 > s2 时比较什么以及结果是什么(例如,当我们比较字符时,比较它们的 ASCII 对应代码)。我读到这个操作是比较 s1 和 s2 的第一个字符,但是如果我尝试与 s1[0] > s2[0] 比较结果是不同的,那就不可能了。
【问题讨论】:
-
“s1 和 s2 的第一个字符”是否意味着 s1 和 s2 是字符串?比较指向两个不同对象的指针的结果是未定义的。请发布Minimal Reproducible Example。关于问题的标题,您不能使用
=进行比较。并且不能使用<或>来比较字符串:请使用strcmp()。 -
s1和s2包含指向数组第一个位置的内存地址,它与&s1[0]和&s2[0]相同,您将比较这些地址。 -
风向标所说的。使用
strcmp比较 C 中的字符串,以实现严格相等和简单的“字典顺序”大于和小于。 -
我无法更改编写此代码的方式。它们是我的教授写的,但我需要了解他们做了什么。 s1 和 s2 是字符串,但我尝试打印这两个变量,但结果似乎不是地址
标签: c if-statement comparison implicit-conversion c-strings