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;
}

运行截图:

相关推荐
JingHongB3 分钟前
代码随想录算法训练营Day55 | 图论理论基础、深度优先搜索理论基础、卡玛网 98.所有可达路径、797. 所有可能的路径、广度优先搜索理论基础
算法·深度优先·图论
weixin_432702266 分钟前
代码随想录算法训练营第五十五天|图论理论基础
数据结构·python·算法·深度优先·图论
小冉在学习8 分钟前
day52 图论章节刷题Part04(110.字符串接龙、105.有向图的完全可达性、106.岛屿的周长 )
算法·深度优先·图论
Repeat7159 分钟前
图论基础--孤岛系列
算法·深度优先·广度优先·图论基础
小冉在学习11 分钟前
day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
java·算法·图论
武子康23 分钟前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘
passer__jw7671 小时前
【LeetCode】【算法】283. 移动零
数据结构·算法·leetcode
Ocean☾1 小时前
前端基础-html-注册界面
前端·算法·html
顶呱呱程序1 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm