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 语言环境;

描述

strcmpstrncmpstrcasecmpstrcasecmp_lstrncasecmpstrncasecmp_lstrcollstrcoll_l 子例程比较内存中的字符串。

strcasecmp_l ()strncasecmp_l (), 和 strcol_ll () 函数与 strcasecmp ()相同, strncasecmp ()strcoll () 函数,只是它们使用 Locale 表示的语言环境来确定字符的大小写,而不是当前语言环境。

String1String2 参数指向字符串。 字符串是由空字符终止的字符数组。

斯特尔克普 子例程对 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 参数指定的最大字节数对。

注: strcasecmpstrncasecmp 子例程仅使用 7 位 ASCII 字符。

strcoll 子例程的工作方式与 strcmp 子例程相同,只是比较是基于由 LC_COLLATE 类别确定的整理顺序。 如果在转换后的字符串上使用 strcmp 子例程,那么它将返回与对应未转换的字符串的 strcoll 子例程相同的结果。

参数

描述
编号 要检查的字符串中的字节数。
String1 指向比较的字符串。
String2 指向充当比较源的字符串。
语言环境 指向比较字符串的语言环境。

错误代码

strcmpstrncmpstrcasecmpstrncasecmpstrcoll, 如果发生以下情况, strcasecmp_lstrncasecmp_lstrcoll_l 子例程将失败:

描述
Efault 字符串参数是无效地址。

此外,在下列情况下, strcollstrcoll_l 子例程将失败:

描述
EINVAL 字符串参数包含整理顺序域外的字符。