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

运行截图:

相关推荐
努力学算法的蒟蒻5 分钟前
day14(11.14)——leetcode面试经典150
算法·leetcode
让我们一起加油好吗24 分钟前
【数据结构】并查集(操作详解 + 模板 + 练习)
数据结构·算法·并查集·洛谷
PenguinLeee28 分钟前
KKT条件:对偶问题、KKT条件以及内点法
算法·凸优化
序属秋秋秋38 分钟前
《Linux系统编程之进程基础》【进程入门】
linux·运维·c语言·c++·进程·系统编程·fork
Blossom.1181 小时前
大模型知识蒸馏实战:从Qwen-72B到Qwen-7B的压缩艺术
大数据·人工智能·python·深度学习·算法·机器学习·pygame
海琴烟Sunshine4 小时前
leetcode 383. 赎金信 python
python·算法·leetcode
say_fall5 小时前
C语言编程实战:每日刷题 - day2
c语言·开发语言·学习
cynicme10 小时前
力扣3228——将 1 移动到末尾的最大操作次数
算法·leetcode
熬了夜的程序员10 小时前
【LeetCode】109. 有序链表转换二叉搜索树
数据结构·算法·leetcode·链表·职场和发展·深度优先
随意起个昵称10 小时前
【递归】二进制字符串中的第K位
c++·算法