我在查找比较C字符串的信息时遇到了一些困难。我明白,与C++不同,C不支持操作符重载,所以我想知道是否有任何方法检查一个字符串是否大于/小于另一个(例如str1> str2)?C字符串的比较运算符
非常感谢您的回复。这是我第一次真的不得不问一个问题,因为我找不到相关的帖子。
我在查找比较C字符串的信息时遇到了一些困难。我明白,与C++不同,C不支持操作符重载,所以我想知道是否有任何方法检查一个字符串是否大于/小于另一个(例如str1> str2)?C字符串的比较运算符
非常感谢您的回复。这是我第一次真的不得不问一个问题,因为我找不到相关的帖子。
有几个,每个服务于不同的目的(现在省略宽字符变体)。
strcmp
- 比较两个字符串,逐个字符(C是什么字符串是否相等的概念 - 不需要与人们的想法一致 - 见strcoll
)。有一个变体只能比较第一个最多n个字符,strncmp
。
strcasecmp
- 比较两个字符串,忽略大小写。有一个变体仅用于比较第一个最多n个字符,strncasecmp
。
strcoll
- 比较两个字符串,观察当前设置的语言环境(这就是为什么称为归类,而不是在这种情况下比较)。如果您希望ss
和ß
比较德国观众的平等,那么这就是你应该使用的。
下,您可能在语言写
if (string1 > string2) ...
,你必须写
if (strmp(string1, string2) > 0) ...
在C.
基本上你两个操作数进入函数调用,保留了比较操作而是与0
进行比较。
使用的strcmp()的C.
例如,如果要比较两个字符串S1和S2然后,
STRCMP(S1,S2)将返回0,如果他们是平等的,正整数,如果如果s1小于s2,则s1大于s2且为负整数。