零.导言
之前我们学习了strcmp函数,不妨我们现在尝试模拟实现strcmp函数的功能。
一.实现strcmp函数的要点
- strcmp函数是一种字符串函数,可以比较字符类型的数组,因此我们自定义的模拟函数需要两个char类型的指针参数;
- 第一个字符串大于第二个字符串时,返回一个大于零的数字。
- 第一个字符串等于第二个字符串时,返回0。
- 第一个字符串小于第二个字符串时,返回一个小于零的数字。
- 所以需要一个int类型的返回值。
二.strcmp函数的模拟实现
其实很简单,只需满足以上几个条件,代码如下:
int char_cmp(const char* str1, const char* str2)
{assert(str1,str2);for (int i = 0; ; i++){if (str1[i] == str2[i]){if (str1[i] == '\0'){return 1;}else if (str2[i] == '\0'){return -1;}else{return 0;}}else{if (str1[i] - str2[i] > 0){return 1;}else{return 0;}}
这样,模拟的函数就可以起到和原函数相近的效果,验证:
三.strcmp函数模拟实现的意义
加深了我们对此函数的理解,深入的学习了strcmp函数的本质,对日后新知识的学习与理解有帮助。
四.相关链接
【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客
完