1.strcmp

This function starts comparing the first character of each string. If they are equal to each other, it continues with the following pairs until the characters differ or until a terminating null-character is reached.//摘自msdn
此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续使用以下对,直到字符消失或达到终止的空字符为止
注意:

返回值 str1 str2
1 >
0 =
-1 <

1.第一个字符串大于第二个字符串,则返回大于0的数字
2.第一个字符串等于第二个字符串,则返回0
3.第一个字符串小于第二个字符串,则返回小于0的数字

  int my_strcmp(const char* str1, const char* str2){const unsigned char* src1 = (const unsigned char*)str1;//强转成const unsigned char* 是为了下面两个指针的值的ascii相减const unsigned char* src2 = (const unsigned char*)str2;int ret = 0;assert(src1 != NULL && src2 != NULL);while (!(*src1 - *src2) && *src2)//如果两个值不相等或*src2的ascii为0,{//(*src1-*src2,所以如果*src2的ascii的值为0,那*src1就比*src2大或相等,显然结果就已知了,退出循环),//就继续判断, 否则,求出相减的值并退出循环src1++, src2++;}ret = (*src1 - *src2);if (ret < 0){return -1;}else if (ret>0){return 1;}return (ret);}int main(){char str1[20]= "abcd";char str2[20] = "abcdef";printf("%d\n",my_strcmp(str1, str2));return 0;}

运行结果:

2.strncmp

strncmp比较两个字符串前n个字符,其他内容和strcmp一样。

   int my_strncmp(const char* str1, const char* str2,size_t n)//比较两个字符串前n个字符{const unsigned char* src1 = (const unsigned char*)str1;//强转成const unsigned char* 是为了下面两个指针的值的ascii相减const unsigned char* src2 = (const unsigned char*)str2;int ret = 0;assert(src1 != NULL && src2 != NULL);while (!(*src1 - *src2) && *src2 && n > 0 )//如果两个值不相等或*src2的ascii为0,{//(*src1-*src2,所以如果*src2的ascii的值为0,那*src1就比*src2大或相等,显然结果就已知了,退出循环),//就继续判断, 否则,求出相减的值并退出循环src1++, src2++,n--;}ret = (*(--src1) - *(--src2));//比较n个字符指针移动到了n+1个位置,-1返回n的范围内if (ret < 0){return -1;}else if (ret>0){return 1;}return (ret);}int main(){char str1[20]= "abcd";char str2[20] = "abcdef";printf("%d\n",my_strncmp(str1, str2,4));return 0;}

运行结果:

strcmp和strncmp函数相关推荐

  1. 用c语言strncmp函数,strcmp和strncmp函数

    1.strcmp This function starts comparing the first character of each string. If they are equal to each ...

  2. C语言之strcmp函数和strncmp函数

    C语言之strcmp函数和strncmp函数 strcmp 函数用于比较两个字符串是否一致. strncmp 函数用于比较两个字符串的前 n 个字符是否一致. strcmp函数代码示例及其执行结果: ...

  3. C语言——数组、字符串处理函数、strlen、strcpy和strncpy、strcat和strncat、strcmp和strncmp

    目录 一.数组 1.定义:类型 数组名[元素个数] 2.数组不能动态定义 3.如何访问数组中的元素:数组名[下标] 4.循环与数组的关系 5.数组的初始化 二.C99标准中的数组 三.字符串处理函数 ...

  4. strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

    首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小 目录 函数介绍 与strcmp的区别 ACSII表 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:int strncmp( ...

  5. php strncmp函数用法,strncmp函数用法详解

    strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, size_t n );", ...

  6. php strncmp,php strncmp函数怎么用?

    php strncmp函数用于比较两个字符串,其语法是strncmp(string1,string2,length),参数string1必需,指规定要比较的首个字符串:string2必需,指规定要比较 ...

  7. 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别

    模拟实现内存比较函数memcmp: 该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值.若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值.  区别在于: str ...

  8. strncmp函数用法是什么

    strncmp函数用法: 函数原型 int strcmp(char *str1,char * str2,int n) 功能 比较字符串str1和str2的前n个字符. 头文件 #include 返回值 ...

  9. strcasecmp php,PHP中strcmp()和strcasecmp()函数字符串比较用法分析

    本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法.分享给大家供大家参考,具体如下: 一.PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: s ...

最新文章

  1. python 图像频谱
  2. 给老板汇报技术规划的一些要点
  3. Android View坐标系
  4. [react] constructor和getInitialState有不同?
  5. QT中生成字符串md5的方法
  6. 游戏业界“大地震”!687亿美元,微软天价收购动视暴雪
  7. vue-element-admin 设置默认语言
  8. VM虚拟机打开其中一个vmx文件没反应问题解决
  9. 多元回归理论及R语言实现
  10. 操作系统课程设计之二级文件系统演示
  11. 一键重装深度linux系统下载,Deepin 20 Beta X64官方正式版(64位)
  12. 16/24点阵字库(经典)
  13. 新元宇宙每周连载《地球人奇游天球记》第十八回冥王遇鬼
  14. GAMMA初学笔记一
  15. RedTiger‘s Hackit
  16. 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
  17. “学习金字塔”理论的一个应用
  18. 立创开源 WCHLink/DapLink下载器 沁恒
  19. 什么原因导致物联卡有信号不能上网
  20. revit相关报错合集

热门文章

  1. hbase1.xx版本出现元数据不一致情况处理
  2. win10 任务栏全透明一步直达
  3. 申诉解决TeamViewer免费个人版被误判为商业使用
  4. 前端实战小案例--canvas实战之FlappyBird小游戏
  5. 汇编获取CPU的id
  6. 【时间轴】推荐几款jQuery时间轴插件Timeline
  7. c语言strcat()/strcat_s()函数详解
  8. 判断字符串是否是数字
  9. 儿童编程c语言_5种最适合儿童的编程语言
  10. 小程序毕设作品之微信疫苗预约小程序毕业设计(7)中期检查报告