当前位置: 首页 > news >正文

strcmp()在C语言中怎么用(附带实例)

C语言标准库中的 strcmp() 函数用于比较两个字符串。

strcmp() 函数原型如下:

int strcmp (const char * str1, const char * str2);

  • const char *str1 表示待比较字符串 1 的首地址;
  • const char *str2 表示待比较字符串 2 的首地址。

如果两个字符串相同,则返回 0;否则返回其他值。

下面程序展示了一个使用 strcmp() 函数比较字符串的示例:

/**
*  快速入门C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>
#include <string.h>
int main()
{const char *str1 = "abcdefg";const char *str2 = "abcdefgh";const char *str3 = "abcdef";// str1 与自己进行比较int ret = strcmp(str1, str1);printf("%d\n", ret);// str1 与 str2 进行比较ret = strcmp(str1, str2);printf("%d\n", ret);// str1 与 str3 进行比较ret = strcmp(str1, str3);printf("%d\n", ret);return 0;
}

运行结果为:

0
-1
1

字符串str1与自己进行比较,结果相同,因此返回了 0。"abcedfg" 与 "abcedfgh" 进行比较,返回了 -1。"abcedfg" 与 "abcedf" 进行比较,返回了 1。

不相同的情况下,有两种不同的结果:1 和 -1。这是为什么呢?

下图展示了字符串比较的过程:

图 1 字符串比较内部规则

字符串比较函数会依次比较每个字符,如果相同,则比较下一个字符;如果直到 '\0' 字符都相同,则返回 0,表示两字符串相同;如果不相同,则比较当前字符的 ASCII 码。

如果 str1 的当前字符大于 str2 的当前字符,则返回 1;否则返回 -1。例如当 str1 与 str2 进行比较时,不同的字符是 '\0' 与 'h',因为 '\0' 小于 'h',所以返回 -1;str1 与 str3 比较时,不同的字符是 'g' 与 '\0',因为 'g' 大于 '\0',所以返回 1。

相关文章:

  • .NET8 依赖注入组件
  • day003-重置密码
  • React 与 Vue 的区别:你会选择哪个框架呢
  • 构建智能风控引擎的全流程设计指南
  • JDK环境变量
  • Spring Boot 支持政策
  • 综述类论文读后报告——重庆大学《深度学习在人类活动识别中的应用综述》
  • 第一部分:网页的骨架 —— HTML
  • 【教学类-102-19】蝴蝶三色图作品1——卡纸蝴蝶(滴颜料按压对称花纹)A4横版最大号22.85CM
  • 做的一些题目的答案和自己的一些思考
  • 【WLAN】华为无线AC双机热备负载分担—双链路热备份
  • 驱动汽车供应链数字化转型的标杆解决方案:全星研发项目管理APQP软件系统:
  • Oracle 租户、用户、模式之间的关系
  • zephyr架构下Bluetooth advertising接口
  • Ubuntu20.04部署Ragflow(Docker方式)
  • Android studio学习之路(八)---Fragment碎片化页面的使用
  • MCP 协议解读:STDIO 高效通信与 JSON-RPC 实战
  • Dify + Mermaid 实现自然语言转图表
  • 第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组
  • Python 实现从 MP4 视频文件中平均提取指定数量的帧
  • 韩代总统李周浩履职
  • 香港发生车祸致22人受伤,4人伤势严重
  • 刘洪洁已任六安市委副书记、市政府党组书记
  • 海警巡航时海豚围舰艇嬉戏,专家:证明海域生态环境持续向好
  • 美乌签署协议建立美乌重建投资基金
  • 武汉楼市新政:二孩、三孩家庭购买新房可分别享受6万元、12万元购房补贴