- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
strcmp()函数的使用问题
使用strcmp()函数时常出现的问题
原型:int strcmp(char *str1,char *str2)
功能:把两字符串str1与str2进行比较,当str1str2,函数返回1,当str1==str2时,函数返回0,当str1str2时函数返回-1;
1)首先我们对该函数的功能进行实现一下
include stdio.h
#include stdlib.h
#include string.h
int main()
{
printf(a与b的比较的结果:%d\n,strcmp(a,b));
printf(b与a的比较的结果:%d\n,strcmp(b,a));
printf(a与a的比较的结果:%d\n,strcmp(a,a));
return 0;
}
执行结果:
功能相符。
2)问题引入
首先我们来看如下的编程
#include stdio.h
#include stdlib.h
#include string.h
int main()
{
char str1[2],str2[2];
printf(请输入第一个字符串:);
scanf(%s,str1);
printf(请输入第二个字符串:)
scanf(%s,str2);
printf(%d,strcmp(str1,str2));
return 0;
}
我们执行上程序如下:
你们看到没,结果是-1,这本来是等于0啊,可以为什么等于-1?现在我来解答这个疑问。你们看来str1与str2我给它们分配几个字符?对,我只给它们都只分配了两个字符,也就是说它们都是大小为2的字符数组。我们再去看一下程序,我们输入str1与str2是以什么样的方式进行输入的?对,它们都是以字符串的形式进行输入的。而我以前说过,你输入一个字符串,字符串是以’\0’作为结束标记的。假如你是从键盘输入字符串,当你以enter键来结束一个字符输入时,程序会在你输入的字符串中自动输入一个‘\0’。也就是说,字符串结束一定包括一个字符串结束符’\0’,’\0’也占一个字符。现在我们回过来看,strcmp函数是比较两字符串吧,从我们刚才的那种输入的方式,我实际输入的两字符是:str1=”ab\0”,str2=”ab\0”。两个字符都超出了我们给它们的分配的大小。于是这就是出现上面的情况的原因,错误的比较啊,同志们明白了吧。如果还不明白,我们来看下面的一个例子,程序的代码还是上明的代码。只是我们改变一下输入。
年到没有,结果正确。这是因为我们把那个字符串完全的放入了那个两个字符数组中,这样就不会出现比较错误了。不信我们再试一下。
Ok
您可能关注的文档
- SMT元件——电容.doc
- STEP 7基本数据类型.docx
- 深度解析(2026)《ISO 31657-32025 滑动轴承 稳态条件下的流体动压径向滑动轴承 第3部分:可倾瓦径向滑动轴承计算用特征值》.pptx
- 深度解析(2026)《ISO 80000-32019Amd 12025 量和单位 — 第3部分:空间和时间 — 修正案1》.pptx
- 深度解析(2026)《ISO 80000-72019Amd 12025 Quantities and units — Part 7 Light and radiation — Amendment 1》深度解.pptx
- 深度解析(2026)《ISO 80000-92019Amd 12025 量和单位 — 第9部分:物理化学和分子物理学 — 修改单1》.pptx
- 深度解析(2026)《ISO 80000-122019Amd 12025 量与单位 — 第12部分:凝聚态物理 — 修订案1》.pptx
- 2026年新版学前试卷测试卷全套.doc
- 深度解析(2026)《ISO 80601-2-702025 医用电气设备 — 第2-70部分:睡眠呼吸暂停治疗设备基本安全和基本性能专用要求》.pptx
- 深度解析(2026)《ISO 3772017Amd 12025 钢材与钢产品 — 机械试验用样品和试样的位置与制备 — 修正案1》.pptx
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
最近下载
- 日立电梯MCA 型微机控制变压变频调速乘客电梯随机资料.pdf VIP
- 2025北京丰台初二上学期期末物理试卷和参考答案.docx VIP
- 2026年湖南生物机电职业技术学院单招职业适应性考试题库附答案.docx VIP
- 2025雨课堂-科研伦理与学术规范概论.docx
- 2025年北京朝阳区高三一模高考英语试卷试题(含答案详解).docx VIP
- 扬州大学2021-2022学年《社会学概论》期末考试试卷(A卷)含参考答案.docx
- 国家开放大学最新《工程力学(本)》形考任务(1-4)试题及答案解析.pdf VIP
- JJF(鄂) 162-2025 利用溯源数据进行计量器具性能评价指南.docx VIP
- JJF(鄂) 167-2025 辐射环境自动监测站测量设备现场校准规范.docx VIP
- JJF(鄂) 175-2025 气压测试箱校准规范.docx VIP
原创力文档


文档评论(0)