C

strcmp

strcmp

在头文件中定义
int strcmp(const char * lhs,const char * rhs);

按照字典顺序比较两个以空字符结尾的字节字符串。

结果的符号是第一对字符(两者的解释为unsigned char)在所比较的字符串中不同的值之间的差异的符号。

如果lhsrhs不是指向以空字符结尾的字节字符串的指针,行为是未定义的。

参数

lhs,rhs-指向以空字符结尾的字节字符串进行比较的指针

返回值

如果lhs以字典顺序出现在rhs之前,则为负值。

如果lhs和rhs比较相等,则为零。

如果lhs以字典顺序出现在rhs之后,则为正值。

注意

与strcoll和strxfrm不同,此函数不是区域设置敏感的。

#include <string.h> #include <stdio.h> void demo(const char* lhs, const char* rhs) { int rc = strcmp(lhs, rhs if(rc == 0) printf("[%s] equals [%s]\n", lhs, rhs else if(rc < 0) printf("[%s] precedes [%s]\n", lhs, rhs else if(rc > 0) printf("[%s] follows [%s]\n", lhs, rhs } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!" demo(string, "Hello" demo(string, "Hello there" demo("Hello, everybody!" + 12, "Hello, somebody!" + 11 }

输出:

[Hello World!] precedes [Hello!] [Hello World!] follows [Hello] [Hello World!] precedes [Hello there] [body!] equals [body!]

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

STRNCMP比较两个字符串的一定数量的字符(函数)
wcscmp(C95)比较两个宽字符串(函数)
memcmp比较两个缓冲区(功能)
与strcoll根据当前语言环境(函数)比较两个字符串

| 用于strcmp的C ++文档 |