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);
}
相关推荐
汽车仪器仪表相关领域2 分钟前
双组分精准快检,汽修年检利器:MEXA-324M汽车尾气测量仪项目实战全解
大数据·人工智能·功能测试·测试工具·算法·机器学习·压力测试
网硕互联的小客服3 分钟前
如何彻底删除CentOS自带的postfix服务释放25端口?
linux·运维·centos
天码-行空8 分钟前
CentOS 误删 /dev 目录救援方案
linux·运维·centos
小码吃趴菜8 分钟前
mysql
linux·运维·服务器
赫凯11 分钟前
【强化学习】第六章 Dyna-Q 算法
算法
程序员-King.12 分钟前
day154—回溯—分割回文串(LeetCode-131)
算法·leetcode·深度优先·回溯
程序员-King.12 分钟前
day155—回溯—组合(LeetCode-77)
算法·leetcode·回溯
DO_Community15 分钟前
技术解码:Character.ai 如何实现大模型实时推理性能 2 倍提升
人工智能·算法·llm·aigc·moe·aiter
leo__52017 分钟前
基于A星算法的MATLAB路径规划实现
人工智能·算法·matlab
程序员-King.25 分钟前
day152—回溯—电话号码的字母组合(LeetCode-17)
算法·leetcode·深度优先·递归