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);
}
相关推荐
小小de风呀6 分钟前
de风——【从零开始学习Linux】(五):gcc编译器的基本使用
linux·运维·服务器
一只旭宝8 分钟前
面试预备:Linux指令专题
linux·笔记
xbzb10 分钟前
Linux 进程调度与优先级调优避坑指南
linux·运维
金士顿10 分钟前
ASP.NET Core Native AOT + systemd 实战:把 Linux ARM64 程序变成可靠的设备服务
linux·嵌入式·asp.net core·arm64
foolishlee11 分钟前
SCRAM-SHA-256
数据库·算法·postgresql
Rabitebla13 分钟前
【Linux 系统编程】权限(一):身份、提权,和那 9 个权限位
linux·数据结构·c++·算法
byte轻骑兵27 分钟前
【BlueZ 】Linux 内核蓝牙子系统入门:hci_core 模块与 BlueZ 的交互
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
江屿风30 分钟前
【Linux系统】【Linux 进程程序替换机制解析及自定义 Shell 核心逻辑实现 】流食般投喂
linux·运维·服务器·开发语言·笔记
傲世仙尊32 分钟前
从test.c到test.exe-编译和链接的全过程
c语言
好不玩呀33 分钟前
一次PXE服务器上IPV6问题的记录
linux·运维·服务器