C语言实现模拟 strcmp 字符串比较函数,实现字符串大小的比较

完整代码:

复制代码
// 模拟 strcmp 字符串比较函数,实现字符串大小的比较
#include<stdio.h>
//strcmp函数是两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止,如果字符全部相等,就比较字符串长度,字符串长度也相等时,两个字符串相等
#include<string.h>
//传入两个指向要比较字符串的地址的指针
int my_strcmp(const char *str1,const char *str2){
    //从左到右,用数组的方式得到字符串中的字符
    int i=0;
    //两个字符串自左向右逐个字符相比直到出现遇到\0 
    while (str1[i]!='\0'&&str2[i]!='\0')
    {
        //字符相等时,比较下一个字符
        if (str1[i]==str2[i])
        {
            i++;
            //直接跳出这次循环,不用执行后续代码
            continue;
        }
        else if (str1[i]>str2[i])
        {
            //1代表大于
            return 1;
        }
        else if (str1[i]<str2[i])
        {
            //-1代表小于
            return -1;
        }
    }
    //当两个字符串最后一个字符同时为\0时,此时说明前面字符全部相等,并且两个字符串长度也相等
    if (str1[i]=='\0'&&str2[i]=='\0')
    {
        //0代表相等
        return 0;
    }
    //当某个字符串先出现\0,另外一个字符串不是\0,说明这个字符串的长度小于另外一个字符串,则这个字符串更小
    if (str1[i]=='\0')
    {
        return -1;
    }
    if (str2[i]=='\0')
    {
        return 1;
    }
}
int main()
{
    char str1[]="abc";
    char str2[]="bbc";
    printf("%d\n",my_strcmp(str1,str2));
    printf("%d\n",strcmp(str1,str2));
    return 0;
}

运行截图:

相关推荐
charlie11451419112 分钟前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构
handler0117 分钟前
Linux: 基本指令知识点(2)
linux·服务器·c语言·c++·笔记·学习
故事和你9118 分钟前
洛谷-数据结构1-4-图的基本应用1
开发语言·数据结构·算法·深度优先·动态规划·图论
我叫黑大帅28 分钟前
为什么map查找时间复杂度是O(1)?
后端·算法·面试
炽烈小老头1 小时前
【每天学习一点算法 2026/04/20】除自身以外数组的乘积
学习·算法
skilllite作者1 小时前
AI agent 的 Assistant Auto LLM Routing 规划的思考
网络·人工智能·算法·rust·openclaw·agentskills
py有趣3 小时前
力扣热门100题之不同路径
算法·leetcode
_日拱一卒3 小时前
LeetCode:25K个一组翻转链表
算法·leetcode·链表
啊哦呃咦唔鱼3 小时前
LeetCodehot100-394 字符串解码
算法
小欣加油3 小时前
leetcode2078 两栋颜色不同且距离最远的房子
数据结构·c++·算法·leetcode·职场和发展