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);
}
相关推荐
皮皮哎哟几秒前
Linux多线程通信:告别数据混乱
linux·互斥锁·进程间通信·信号量
独自破碎E2 分钟前
【DFS】BISHI76 迷宫寻路
算法·深度优先
三天不学习9 分钟前
Linux inotify 机制详解,解决“用户实例限制”问题
linux·运维·c#
寄存器漫游者10 分钟前
Linux 线程间通信
数据库·算法
岛雨QA20 分钟前
查找算法「Java数据结构与算法学习笔记7」
数据结构·算法
ZFB000125 分钟前
【麒麟桌面系统】V10-SP1 2503 系统知识——插入U盘(移动硬盘)为只读状态
linux·运维·kylin
宝贝儿好30 分钟前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人
unfeeling_30 分钟前
Keepalived实验
linux·服务器·网络
isyoungboy34 分钟前
从图像中提取亚像素边缘点
算法
郝学胜-神的一滴37 分钟前
深入理解链表:从基础到实践
开发语言·数据结构·c++·算法·链表·架构