strcmp和strncmp函数
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函数相关推荐
- 用c语言strncmp函数,strcmp和strncmp函数
1.strcmp This function starts comparing the first character of each string. If they are equal to each ...
- C语言之strcmp函数和strncmp函数
C语言之strcmp函数和strncmp函数 strcmp 函数用于比较两个字符串是否一致. strncmp 函数用于比较两个字符串的前 n 个字符是否一致. strcmp函数代码示例及其执行结果: ...
- C语言——数组、字符串处理函数、strlen、strcpy和strncpy、strcat和strncat、strcmp和strncmp
目录 一.数组 1.定义:类型 数组名[元素个数] 2.数组不能动态定义 3.如何访问数组中的元素:数组名[下标] 4.循环与数组的关系 5.数组的初始化 二.C99标准中的数组 三.字符串处理函数 ...
- strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)
首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小 目录 函数介绍 与strcmp的区别 ACSII表 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:int strncmp( ...
- php strncmp函数用法,strncmp函数用法详解
strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, size_t n );", ...
- php strncmp,php strncmp函数怎么用?
php strncmp函数用于比较两个字符串,其语法是strncmp(string1,string2,length),参数string1必需,指规定要比较的首个字符串:string2必需,指规定要比较 ...
- 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
模拟实现内存比较函数memcmp: 该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值.若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值. 区别在于: str ...
- strncmp函数用法是什么
strncmp函数用法: 函数原型 int strcmp(char *str1,char * str2,int n) 功能 比较字符串str1和str2的前n个字符. 头文件 #include 返回值 ...
- strcasecmp php,PHP中strcmp()和strcasecmp()函数字符串比较用法分析
本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法.分享给大家供大家参考,具体如下: 一.PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: s ...
最新文章
- python 图像频谱
- 给老板汇报技术规划的一些要点
- Android View坐标系
- [react] constructor和getInitialState有不同?
- QT中生成字符串md5的方法
- 游戏业界“大地震”!687亿美元,微软天价收购动视暴雪
- vue-element-admin 设置默认语言
- VM虚拟机打开其中一个vmx文件没反应问题解决
- 多元回归理论及R语言实现
- 操作系统课程设计之二级文件系统演示
- 一键重装深度linux系统下载,Deepin 20 Beta X64官方正式版(64位)
- 16/24点阵字库(经典)
- 新元宇宙每周连载《地球人奇游天球记》第十八回冥王遇鬼
- GAMMA初学笔记一
- RedTiger‘s Hackit
- 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
- “学习金字塔”理论的一个应用
- 立创开源 WCHLink/DapLink下载器 沁恒
- 什么原因导致物联卡有信号不能上网
- revit相关报错合集