C语言:模拟实现strcmp
模拟实现strlen:https://blog.youkuaiyun.com/weixin_44304853/article/details/102648277
模拟实现strcpy:https://blog.youkuaiyun.com/weixin_44304853/article/details/102648413
模拟实现strlcat:https://blog.youkuaiyun.com/weixin_44304853/article/details/102648518
模拟实现strstr:https://blog.youkuaiyun.com/weixin_44304853/article/details/102648736
模拟实现memcpy和memmove:https://blog.youkuaiyun.com/weixin_44304853/article/details/102648806
strcmp:
- 功能:用于比较两个字符串并根据比较结果返回整数。即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止
- 头文件:
<string.h>
- 基本形式为:
strcmp(str1,str2)
- 规则:当s1<s2时,返回为负数;当s1=s2时,返回值= 0;当s1>s2时,返回正数。
strcmp的模拟实现:
#include<stdio.h>
#include<assert.h>
#include<string.h>
int my_strcmp(const char * str1, const char * str2)
{
assert(str1&&str2);
while (*str1&&str2)
{
if (*str1 > *str2)
{
return 1;
}
else if (*str1 < *str2)
{
return -1;
}
else
{
str1++;
str2++;
}
}
if (*str1 == '\0'&&*str2 == '\0')
{
return 0;
}
else if (*str1 == '\0')
{
return -1;
}
else if (*str2 == '\0')
{
return 1;
}
}
int main()
{
char* p1 = "hello";
char* p2 = "world";
printf("%d\n", my_strcmp(p1, p2));
return 0;
}