698

std::strcmp

C++

编译器支持

自由(freestanding)与宿主(hosted)

语言

标准库

标准库头文件

具名要求

特性测试宏 (C++20)

语言支持库

概念库 (C++20)

诊断库

内存管理库

元编程库 (C++11)

通用工具库

容器库

迭代器库

范围库 (C++20)

算法库

字符串库

文本处理库

数值库

日期和时间库

输入/输出库

文件系统库 (C++17)

并发支持库 (C++11)

执行控制库 (C++26)

技术规范

符号索引

外部库

[编辑] 文本处理库

本地化库

正则表达式库 (C++11)

格式化库 (C++20)

空终止序列工具

字节字符串

多字节字符串

宽字符串

原生数值转换

to_chars(C++17)

to_chars_result(C++17)

from_chars(C++17)

from_chars_result(C++17)

chars_format(C++17)

文本编码标识

text_encoding(C++26)

[编辑] 空终止字节字符串

函数

字符分类

isalnum

isalpha

islower

isupper

isdigit

isxdigit

isblank(C++11)

iscntrl

isgraph

isspace

isprint

ispunct

字符操作

tolower

toupper

转换为数字格式

atof

atoiatolatoll(C++11)

strtolstrtoll(C++11)

strtoulstrtoull(C++11)

strtofstrtodstrtold(C++11)(C++11)

strtoimaxstrtouimax(C++11)(C++11)

字符串操作

strcpy

strncpy

strxfrm

strcat

strncat

字符串检查

strlen

strcmp

strncmp

strcoll

strchr

strrchr

strspn

strcspn

strpbrk

strstr

strtok

字符数组函数

memchr

memcmp

memset

memcpy

memmove

杂项

strerror

[编辑]

在头文件 中定义

int strcmp( const char* lhs, const char* rhs );

按字典顺序比较两个空终止字节字符串。

结果的符号是所比较字符串中第一对不同字符的值(都解释为 unsigned char)的差值的符号。

如果 lhs 或 rhs 不是指向空终止字符串的指针,则行为是未定义的。

目录

1 参数

2 返回值

3 示例

4 参见

[编辑] 参数

lhs, rhs

-

指向要比较的空终止字节字符串的指针

[编辑] 返回值

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

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

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

[编辑] 示例

运行此代码

#include

#include

#include

#include

int main()

{

std::vector cats{"Heathcliff", "Snagglepuss", "Hobbes", "Garfield"};

std::sort(cats.begin(), cats.end(), [](const char* strA, const char* strB)

{

return std::strcmp(strA, strB) < 0;

});

for (const char* cat : cats)

std::cout << cat << '\n';

}

输出

Garfield

Heathcliff

Hobbes

Snagglepuss

[编辑] 参阅

strncmp

比较两个字符串的特定数量的字符 (函数) [编辑]

wcscmp

比较两个宽字符串 (函数) [编辑]

memcmp

比较两个缓冲区 (函数) [编辑]

strcoll

根据当前区域设置比较两个字符串 (函数) [编辑]

C 文档 for strcmp