前言:

本博客共分为strcmp函数的介绍和模拟实现两部分


strcmp函数的介绍及其应用:

  1. 专门用于比较两个字符串对应位置上字符的大小,而非长度
  2. strcmp的头文件是:#include <string,h>
  3. 提示:每段代码的注释都具有详细解释功能

strcmp的应用:


#include <stdio.h>
#include <string.h>//strcmp的头文件
int main()
{char arr1[] = "abcdef";char arr2[] = "abd";int ret = strcmp(arr1, arr2);printf("%d\n", ret);//-1---小于0的数//arr1[]和arr2[]相对应位置进行比较//前两个元素都一样“ab//第三个:arr1是c;arr2是d;//显然c<d//于是前一个数组小于第二个数组//于是乎//返回小于0的数return 0;
}

当 arr1>arr2---return 大于0的数
当 arr1<arr2---return 小于0的数
当 arr1=arr2---return 0


strcmp的模拟实现:

strcmp函数的设计:int strcmp(const char * str1,const char * str2);

思路:

格式:实现既然是模拟实现,则模拟的函数的格式一定要和原来的够像最好一模一样

返回值:strcmp函数是比较两个字符串大小的,前者比后者大,返回正数;后者比前者大,返回负数;二者一样大,返回0,所以设计的时候也要注意这点。

比较:strcmp函数是把两个字符串里的字符一个一个拿出来比较的,解引用可以实现得到地址指向的内容,加加循环可以实现地址不停后移,以达到后面逐个比较的目的。最后通过if语句判断比较,即可。

#include <stdio.h>
#include <assert.h>//assert头文件int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);while (*str1 == *str2){if (*str1 == '\0'){return;}str1++;str2++;}if (*str1 > *str2)return 1;elsereturn -1;
}int main()
{char arr1[] = "abcdef";char arr2[] = "abd";int ret = my_strcmp(arr1, arr2);printf("%d\n", ret);return 0;
}

优化版:

#include <stdio.h>
#include <assert.h>//assert头文件int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);while (*str1 == *str2){if (*str1 == '\0'){return 0;}str1++;str2++;}return *str1 - *str2;//直接解引用(ASCII码值相减)然后再相减,//若前者大返回值就大于零,反之则小于0或等于0
}int main()
{char arr1[] = "abcdef";char arr2[] = "abd";int ret = my_strcmp(arr1, arr2);printf("%d\n", ret);return 0;
}

字符串函数的介绍带模拟_strcmp相关推荐

  1. 字符串函数的介绍带模拟_strcpy

    前言: 本博客共分为strcpy函数的介绍和模拟实现两部分 strcpy函数的介绍及其应用: strcpy是字符串拷贝 strcpy的头文件是:#include <string,h> 提示 ...

  2. 字符函数和字符串函数的介绍及模拟实现

    在C语言中,我们对字符和字符串的使用是非常频繁的,但是C语言本身是没有提供字符串类型的,字符串通常是放在常量字符串或者字符数组中. 需要调用或者使用这一类函数,必不可少的就是要调用其头文件<st ...

  3. atoi函数的介绍和模拟实现

    今天我来介绍atoi函数和模拟实现atoi函数. 目录 atoi和与其功能相似的函数的介绍 atoi函数的模拟实现 atoi和与其功能相似的函数的介绍 atoi函数是一个将字符串转换为整数值的函数. ...

  4. MySQL中字符串函数详细介绍

    MySQL字符串函数对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str)返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回N ...

  5. 字符串 内存 函数的介绍与模拟实现

    目录一览

  6. 【atoi函数的介绍以及模拟实现】

    目录 前言 一.atoi函数测试 1. 要求 2. 测试 二.atoi函数模拟实现 三.补充 前言 位置: atoi函数包含在<stdlib.h>头文件中 作用: 将字符串转换为整形数据返 ...

  7. (二)字符函数和字符串函数详细讲解和模拟实现(优化)

    ✨✨✨✨✨✨✨✨✨

  8. 用c语言模拟实现常用字符串函数

    目录 一.常用字符串函数介绍 1.strlen 2. strcpy 3.strcmp 4.strcat 5.strstr 二.模拟实现常用字符串函数 1.strlen 2.strcpy 3.strcm ...

  9. mysql 字段最右匹配_Mysql字符串处理函数详细介绍、总结 -电脑资料

    一.简明总结 ASCII(char) 返回字符的ASCII码值 BIT_LENGTH(str) 返回字符串的比特长度 CONCAT(s1,s2-,sn) 将s1,s2-,sn连接成字符串 CONCAT ...

最新文章

  1. jQuer or js 插件aptana studio 3.4.0)教你玩转eclipse配置(全世
  2. 什么是CRM中间件的1250事件
  3. 静态原型设计 加载中_见解1:原型设计有助于填补静态设计留下的空白。
  4. 【数据结构与算法基础】二叉树
  5. 关于Spring MVC中文乱码问题的解决方法
  6. 手把手教你写一个java的orm(二)
  7. 【UOJ #351】新年的叶子(树的直径,期望)
  8. python笔记26-命令行传参sys.argv实际运用
  9. 【软件测试】基础用例篇
  10. 伺服电机选型时,惯量匹配和惯量比的问题
  11. 【边缘计算】移动边缘计算中延迟和能量约束任务卸载的最优拍卖
  12. 麻省理工遍地走,6年经验安卓程序员面试微软,靠这份思维脑图拿下Offer!
  13. 历代治国理政者的教科书——金木水火土的起源之书:周朝的统治大法——《洪范》...
  14. 恢复视力的方法(飞行员都用)治近视的秘方!1000度近视降到只有200
  15. 七牛上传图片(前台JS+后台C#API获取token)
  16. python的pth打开方式_pytorch 加载(.pth)格式的模型实例
  17. html页面导出文件大小,【实战】通过 JS 将 HTML 导出为 PDF 文档
  18. 网安之php开发第十四天
  19. 一个学习小组有5个人,每个人有三门课的考试成绩。将各个数据保存到二维数组a[5][3]中,并求全组分科的平均成绩和总平均成绩
  20. Mysql Table doesn't exist问题解决

热门文章

  1. 易观:正视GPT-4功能缺陷与能力局限可更好探索大模型应用
  2. 对话Momenta驭势及速腾聚创负责人:无人驾驶落地需打群架能力
  3. 户外软件推荐与介绍——奥维和两步路
  4. 查看当前显卡驱动支持最高的cuda版本
  5. 常见问题--如何管控项目进度和风险管理
  6. Android 之webView调试之路
  7. 源商城-最专业的虚拟产品销售平台源码(pc端+h5端)
  8. 大学生谈创业之网络赚钱(副业推荐的一些无货源赚钱项目资源)
  9. 一键部署dns服务_一键设置DNS
  10. C++内存分布之菱形继承(无虚函数)