个人网站源码php,免费找客源软件,常宁市城市建设规划管理局网站,利用淘宝视频服务做视频网站C语言程序设计笔记---025 C语言之模拟实现strcmp函数1、介绍strcmp函数2、模拟实现strcmp函数3、结语 C语言之模拟实现strcmp函数
前言#xff1a; 通过C语言字符串函数的知识#xff0c;这篇将对strcmp函数进行深入学习底层原理的知识#xff0c;并模拟实现对应功能。
/知… C语言程序设计笔记---025 C语言之模拟实现strcmp函数1、介绍strcmp函数2、模拟实现strcmp函数3、结语 C语言之模拟实现strcmp函数
前言 通过C语言字符串函数的知识这篇将对strcmp函数进行深入学习底层原理的知识并模拟实现对应功能。
/知识点汇总/
1、介绍strcmp函数
函数原型int strcmp( const char *string1, const char *string2 ); 函数功能字符串比较大小不是比较长度而是比较对应位置上的字符大小即ASCII码值返回值类型为int 头文件string.h 返回值标准规定ASCLL码值 ①.第一个字符串大于第二个字符串则返回大于0的数字 ②.第一个字符串等于第二个字符串则返回0 ③.第一个字符串小于第二个字符串则返回小于0的数字
使用注意事项 不是比较长度而是比较对应位置上的字符大小即ASCII码值 示例代码1如下
#include stdio.h
#include string.h
int main()
{char arr1[] abcdef;char arr2[] abq;int ret strcmp(arr1, arr2);printf(%d\n, ret);//-1第一个字符串比第二个字符串小返回小于零的数值return 0;
}2、模拟实现strcmp函数
#include stdio.h
#include string.hint my_strcmp(const char* str1,const char* str2)
{assert(str1 str2);while (*str1 *str2){if (*str1 \0)return 0;str1;str2;}return *str1 - *str2;
}int main()
{char arr1[] abc;char arr2[] abq;if (my_strcmp(arr1, arr2) 0){printf(\n);}else{printf(\n);}return 0;
}解释说明 1.assert是断言参数为指针防止传参过来是空指针避免野指针的问题 2.当*str1 *str2则指针继续移动直到出现不同的字符后用指针解引用后的值相减也就是字符的ASCII码值相减得到的值正好也满足返回值类型int
3、结语
学习函数的最实用的方式就是用自己的逻辑简单实现一些类似的功能 半亩方糖一鉴开天光云影共徘徊。 问渠哪得清如许?为有源头活水来。–朱熹观书有感