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

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。

http://www.xdnf.cn/news/2138.html

相关文章:

  • CentOS 如何使用截图工具截取命令行操作的图片?
  • 定制一款国密浏览器(12):分析SM2签名算法的实现
  • 在 Linux 上安装 PNPM 的教程
  • Git分支重命名与推送参数解析
  • 案例速成GO操作redis,个人笔记
  • LeetCode100题
  • 案例速成GO+redis 个人笔记
  • 【springboot知识】配置方式实现SpringCloudGateway相关功能
  • TortoiseGit 入门指南
  • Linux基础命令总结
  • 【设计模式区别】装饰器模式和适配器模式区别
  • C#中wpf程序中的x名空间详解
  • CSS3布局方式介绍
  • 如何修改npm的全局安装路径?
  • 【Token系列】02 | Embedding是怎么“长出来”的?从查表到训练过程全解
  • git和github的使用指南
  • 探索具身智能协作机器人:技术、应用与未来
  • 苹果(IOS)手机怎么开启开发者模式(简单明了版)
  • 在QML中获取当前时间、IP和位置(基于网络请求)
  • 机器学习:逻辑回归实现二元分类
  • 【解决】trying to draw too large(147456000bytes) bitmap
  • 当自动驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?
  • Redis和MQ的区别
  • WEB安全--RCE--webshell bypass
  • 数据分析岗位-相关知识
  • Nginx性能优化:从配置到缓存,全面提升Web服务器性能
  • Datawhale AI春训营二期---使用AI实现老人的点餐效果(关于task2的相关思考)
  • [FPGA Video IP] Video Processing Subsystem
  • 基于Tcp协议的应用层协议定制
  • 软件技术专业