[英]Comparison operators for C strings
我在查找比较C字符串的信息时遇到了一些困难。 我明白,与C ++不同,C不支持运算符重载,所以我想知道是否有办法检查一个字符串是否大于/小于另一个(例如str1> str2)?
提前感谢您的回复。 老实说,这是我实际上不得不问一个问题的第一次,因为我找不到相关的帖子。
有几个,每个用于不同的目的(现在省略宽字符变体)。
strcmp
- 比较两个字符串,逐个字符(C字符串相同或不相同 - 不需要与人类思考的方式一致 - 请参阅strcoll
)。 有一种变体只用于比较最多n个字符strncmp
。
strcasecmp
- 比较两个字符串,忽略大小写。 有一个变体只用于比较第一个最多n个字符strncasecmp
。
strcoll
- 比较两个字符串,观察当前设置的语言环境(这就是为什么它被称为整理,在这种情况下不进行比较)。 如果你想让ss
和ß
比较德国观众的平等,那么这就是你应该使用的。
你可能写的地方
if (string1 > string2) ...
用一种语言,你必须写
if (strmp(string1, string2) > 0) ...
在C.本质上,您将两个操作数移动到函数调用中,保留比较运算符并与0
进行比较。
在C中使用strcmp()
例如,如果你想比较两个字符串s1和s2那么,
strcmp(s1,s2)如果相等则返回0,如果s1大于s2,则返回正整数;如果s1小于s2,则返回负整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.