尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

strcmp :全称 string compare(字符串比较)

strcmp :全称 string compare(字符串比较)
📅 发布时间:2026/6/24 9:02:07

1. 主角登场:strcmp是什么?

strcmp的全称是string compare(字符串比较)。它的任务很简单,就是像查字典一样,比较两个字符串谁“大”谁“小”。

核心规则(记住这个就行):
它从左到右,一个字符一个字符地比(比的是字符的 ASCII 码值)。

  • 如果两个字符串一模一样,返回0。
  • 如果字符串1 比 字符串2 “大”,返回正数(> 0)。
  • 如果字符串1 比 字符串2 “小”,返回负数(< 0)。

通俗类比:
想象你在比两个单词 "apple" 和 "banana"。
你从第一个字母开始看:'a' 和 'b'。
因为在字母表里 'a' 在 'b' 前面,所以 "apple" 比 "banana" 小。strcmp("apple", "banana")就会返回一个负数。

2. 实战:它在哪出现?

我们在上一讲qsort排序结构体时,就用到过它!

假设我们要按学生的姓名排序,姓名是字符串(char name[20]),我们不能直接做减法

(name1 - name2是错的!),这时候就得请strcmp出马。

#include <string.h> strcmp 的头文件 struct Stu { char name[20]; int age; }; 按名字排序的比较函数 int cmp_stu_by_name(const void* e1, const void* e2) { 1. 先把 void* 强转成 struct Stu* 2. 取出 name 成员(它本身就是 char* 类型) 3. 交给 strcmp 去比较 return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name); }

看,strcmp帮我们省去了手写循环去逐个比较字符的麻烦,非常省心。

3. 避坑指南:千万别用==比字符串!

这是新手最容易犯的错!

char str1[] = "hello"; char str2[] = "hello"; if (str1 == str2) { ... } ❌ 错误! if (strcmp(str1, str2) == 0) { ... } ✅ 正确!

为什么?

  • str1 == str2比较的是两个数组的首地址。这两个数组在内存里是不同的两块地盘,地址肯定不一样,所以结果永远是假。
  • strcmp(str1, str2)比较的是两个地址里存放的内容。内容都是 "hello",所以返回 0,表示相等。

总结一下:
strcmp,它是 C 语言里专门用来比较字符串内容的函数。记住它的返回值规则(0、正数、负数),并且永远不要用==来比较两个字符串的内容。

相关新闻

  • 有智青年挑战赛决赛在穗举行,15支队伍角逐AI+场景应用大奖共筑科创生态
  • 云克隆助力德国团队在Nature上发表靶向降钙素原改善脓毒症的科研成果
  • GitHub Actions工件管理终极指南:从基础到企业级架构设计

最新新闻

  • DeepTutor完整指南:50+主流AI模型无缝集成,构建你的专属智能导师
  • Espresso快递追踪应用:5个提升用户体验的关键功能解析 [特殊字符]
  • 从零到一:AlphaFold 2蛋白质结构预测实战完全指南
  • Storybook:构建高质量UI组件的终极解决方案
  • MIDAS:实时动态图异常检测的终极解决方案,929倍速超越传统方法
  • 3大实战场景:用Pandas+Matplotlib解决真实数据分析难题

日新闻

  • 终极指南:如何用shadPS4在电脑上免费畅玩PS4游戏
  • 打造个性化Instagram Clone:主题定制与用户体验优化技巧
  • 未来展望:RoseTTAFold-All-Atom的发展路线图与社区支持资源汇总

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号