C语言第三十八弹--模拟实现strcmp

简介: C语言第三十八弹--模拟实现strcmp

使用C语言模拟实现strcmp

strcmp 比较两个字符串大小 底层实现:int strcmp(const char* str1,const char* str2)

思路:了解strcmp作用是比较字符串大小,那么就要分三种情况,大,小,相等。然后分别进行处理。比较方法根据实现了解是使用指针进行比较。

代码如下:

#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);
}
目录
打赏
0
0
0
0
0
分享
相关文章
dlib+VS2019生成踩坑记录(Windows10环境)
dlib+VS2019生成踩坑记录(Windows10环境)
422 0
dlib+VS2019生成踩坑记录(Windows10环境)
新手入门 acm 输入输出练习
A + B Problem(1000) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 355051    Accept...
22794 2
Hologres揭秘:实时数仓Hologres如何支持超大规模部署与运维
本文将会从超大规模部署与运维体系建设出发,分析超大规模实时数仓面临的挑战和针对性的设计及解决方案,实现在高负载高吞吐的同时支持高性能,并做到生产级别的高可用。
1818 1
Hologres揭秘:实时数仓Hologres如何支持超大规模部署与运维
前端必备的谷歌浏览器JSON可视化插件:JSON-Handle
前端必备的谷歌浏览器JSON可视化插件:JSON-Handle
1026 0
前端必备的谷歌浏览器JSON可视化插件:JSON-Handle
英伟达发布 Hopper H100 新架构芯片:面向 AI、自动驾驶汽车及 Metaverse 领域
英伟达发布 Hopper H100 新架构芯片:面向 AI、自动驾驶汽车及 Metaverse 领域
1334 0
英伟达发布 Hopper H100 新架构芯片:面向 AI、自动驾驶汽车及 Metaverse 领域
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等