C字符串的比较运算符

时间:2012-01-17 07:22:23

标签: c arrays string comparison

我在查找比较C字符串的信息时遇到了一些困难。据我所知,与C ++不同,C不支持运算符重载,所以我想知道是否有办法检查一个字符串是否大于/小于另一个字符串(例如str1> str2)?

提前感谢您的回复。老实说,这是我实际上不得不提出问题的第一次,因为我找不到相关的帖子。

2 个答案:

答案 0 :(得分:14)

有几种,每种都有不同的用途(现在省略宽字符变体)。

strcmp - 逐个字符地比较两个字符串(使用C字符串相同或不相同的概念 - 不需要与人类思考的方式一致 - 请参阅strcoll)。有一种变体只能比较第一个 n 字符strncmp

strcasecmp - 比较两个字符串,忽略大小写。有一种变体只能比较第一个 n 字符strncasecmp

strcoll - 比较两个字符串,观察当前设置的语言环境(这就是为什么它被称为整理,在这种情况下不进行比较)。如果您希望ssß对德国观众进行比较,那么这就是您应该使用的内容。


你可以写的地方

if (string1 > string2) ...

用一种语言,你必须写

if (strmp(string1, string2) > 0) ...
在C.中基本上你将两个操作数移动到函数调用中,保留比较运算符并与0进行比较。

答案 1 :(得分:2)

在C。中使用strcmp()。

例如,如果你想比较两个字符串s1和s2,那么,

strcmp(s1,s2)如果相等则返回0,如果s1大于s2,则返回正整数;如果s1小于s2,则返回负整数。