strcmp , strncmp , strcasecmp , strcasecmp_l , strncasecmp , strncasecmp_l , strcoll 或 strcoll_l 子例程
用途
比较内存中的字符串。
库
标准 C 库 (libc.a)
语法
#include < string.h >
int strcmp ( String1, String2) const char *字符串 1, *字符串 2;
英特 斯特恩普 (String1, String2, 数字) const 字符 *字符串 1, *字符串 2; 大小 数字;
int strcoll (String1 String2) const char *String1, *String2;
int strcoll_l (String1, String2,语言环境) const char *String1, *String2;locale_t Locale;
#include < strings.h >
英特 斯特卡塞普 (String1, String2) const 字符 *字符串 1, *字符串 2;
英特 strcasecmp_l (String1, 字符串 2,语言环境) const 字符 *字符串 1, *字符串 2;locale_t 语言环境;
英特 斯特恩卡塞普 (String1, String2, 数字) const 字符 *字符串 1, *字符串 2; 大小 数字;
英特 strncasecmp_l (String1, 字符串 2,数字,语言环境) const 字符 *字符串 1, *字符串 2;大小 数字;locale_t 语言环境;
描述
strcmp, strncmp, strcasecmp, strcasecmp_l, strncasecmp, strncasecmp_l, strcoll和 strcoll_l 子例程比较内存中的字符串。
strcasecmp_l (), strncasecmp_l (), 和 strcol_ll () 函数与 strcasecmp ()相同, strncasecmp () 和 strcoll () 函数,只是它们使用 Locale 表示的语言环境来确定字符的大小写,而不是当前语言环境。
String1 和 String2 参数指向字符串。 字符串是由空字符终止的字符数组。
斯特尔克普 子例程对 String1 参数所指向的字符串和 String2 参数所指向的字符串执行区分大小写的比较,并分析每个字符串中的字符的扩展 ASCII 字符集值。 strcmp 子例程比较 unsigned char 数据类型。 然后, strcmp 子例程返回以下值:
- 如果字符串 String1 的值在词法上小于字符串 String2,那么小于 0。
- 如果字符串 String1 的值在词法上等于字符串 String2,那么等于 0。
- 如果字符串 String1 的值在词法上大于字符串 String2,那么大于 0。
strncmp 子例程与 strcmp 子例程进行相同的比较,但与 Number 参数指定的最大字节对数进行比较。
strcasecmp 子例程执行与 strcmp 子例程相似的逐字符比较。 但是, strcasecmp 子例程不区分大小写。 大写和小写字母将映射到相同的字符集值。 每个字符串的映射字符集值的总和用于返回以下值:
- 如果字符串 String1 的值在词法上小于字符串 String2,那么小于 0。
- 如果字符串 String1 的值在词法上等于字符串 String2,那么等于 0。
- 如果字符串 String1 的值在词法上大于字符串 String2,那么大于 0。
strncasecmp 子例程与 strcasecmp 子例程进行相同的比较,但是比较最多为 Number 参数指定的最大字节数对。
strcoll 子例程的工作方式与 strcmp 子例程相同,只是比较是基于由 LC_COLLATE 类别确定的整理顺序。 如果在转换后的字符串上使用 strcmp 子例程,那么它将返回与对应未转换的字符串的 strcoll 子例程相同的结果。
参数
| 项 | 描述 |
|---|---|
| 编号 | 要检查的字符串中的字节数。 |
| String1 | 指向比较的字符串。 |
| String2 | 指向充当比较源的字符串。 |
| 语言环境 | 指向比较字符串的语言环境。 |
错误代码
strcmp, strncmp, strcasecmp, strncasecmp, strcoll, 如果发生以下情况, strcasecmp_l, strncasecmp_l和 strcoll_l 子例程将失败:
| 项 | 描述 |
|---|---|
| Efault | 字符串参数是无效地址。 |
此外,在下列情况下, strcoll和 strcoll_l 子例程将失败:
| 项 | 描述 |
|---|---|
| EINVAL | 字符串参数包含整理顺序域外的字符。 |