C语言第三十八弹--模拟实现strcmp

使用C语言模拟实现strcmp

strcmp 比较两个字符串大小 底层实现:int strcmp(const char* str1,const char* str2)

思路:了解strcmp作用是比较字符串大小,那么就要分三种情况,大,小,相等。然后分别进行处理。比较方法根据实现了解是使用指针进行比较。

代码如下:

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int my_strcmp(const char* s1, const char* s2)
{
	assert(s1 && s2);//断言
	while (*s1 == *s2)//字符相同情况
	{
		if (*s1 == '\0')//符合while条件只要其中一个是'\0'证明两个都已经比较完成
		{
			return 0;
		}
		s1++;
		s2++;
	}

	if (*s1 > *s2)//*s1 > *s2
	{
		return 1;
		//return *s1 - *s2;
	}
	else//其它情况
	{
		return -1;
		//return *s1 - *s2;
	}

	//简洁写法 return *s1-*s2 缺点:返回值是随机值
}


int main()
{
	int ret=my_strcmp("abcde", "abcd");
	printf("%d\n",ret);
}
相关推荐
不怕犯错,就怕不做6 分钟前
Linux内核默认允许多个进程打开同一字符设备
linux·驱动开发·嵌入式硬件
We་ct6 分钟前
LeetCode 58. 最后一个单词的长度:两种解法深度剖析
前端·算法·leetcode·typescript
小袁顶风作案8 分钟前
leetcode力扣——452. 用最少数量的箭引爆气球
学习·算法·leetcode·职场和发展
进击的小头10 分钟前
创建型模式:单例模式(C语言实现与实战)
c语言·开发语言·单例模式
deep_drink11 分钟前
【经典论文精读(一)】Isomap:非线性降维的全局几何框架(Science 2000)
人工智能·算法·机器学习
mjhcsp29 分钟前
莫比乌斯反演总结
c++·算法
Source.Liu42 分钟前
【Ubuntu】关机重启命令
linux·运维·ubuntu
iCode50443 分钟前
CentOS Stream 9修改静态IP
linux·tcp/ip·centos
不怕犯错,就怕不做1 小时前
RK3562+RK817在关机状态下提升充电电流至2A解决方案
linux·驱动开发·嵌入式硬件
爱编码的傅同学1 小时前
【今日算法】LeetCode 25.k个一组翻转链表 和 43.字符串相乘
算法·leetcode·链表