榷另辑 发表于 2025-6-4 18:59:11

模拟实现 strcmp(字符串比较) --浅谈C语言

C 库函数 - strcmp()

描述

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
声明

下面是 strcmp() 函数的声明。
int strcmp(const char *str1, const char *str2)参数


[*]str1 -- 要进行比较的第一个字符串。
[*]str2 -- 要进行比较的第二个字符串。
返回值

该函数返回值如下:

[*]如果返回值小于 0,则表示 str1 小于 str2。
[*]如果返回值大于 0,则表示 str1 大于 str2。
[*]如果返回值等于 0,则表示 str1 等于 str2。
模拟实现

比较方式,依次比较ascii大小,大返回正数,小于返回负数,等于则比较下一位。若全都相等则返回0;
1.0

my_strcmp 1.0 版本
#include<stdio.h>
#include

int my_strcmp(const char*str1, const char*str2)
{
    assert(str1&&str2);
    //依次比较ascii大小
    while (*str1 == *str2)
    {
                    //相等且都为'\0'
      if (str1 == '\0')
      {
            return 0;
      }
      str1++;
      str2++;
    }
    return(*str1 - *str2);
}

int main()
{
    char* str1 = "aaaa";
    char* str2 = "bbbb";
    int ret = my_strcmp(str1, str2);
    printf("%d\n", ret);
    return 0;
}2.0

#include<stdio.h>
#include

int my_strcmp (const char * src, const char * dst)
{
       int ret = 0 ;
      assert(src != NULL);
       assert(dest != NULL);
       //以字符类型(以字节为单位)进行整型计算
       while( *dst && *src && !(ret = *(unsigned char *)src - *(unsigned char *)dst) )
               ++src, ++dst;
               
       if ( ret < 0 )
               ret = -1 ;
       else if ( ret > 0 )
               ret = 1 ;

       return( ret );
}
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

炀餮氢 发表于 2025-10-28 06:49:06

这个有用。

管水芸 发表于 2025-11-2 02:05:28

感谢发布原创作品,程序园因你更精彩

哈妙思 发表于 2025-11-27 03:25:02

新版吗?好像是停更了吧。

劳暄美 发表于 2025-11-27 21:24:07

东西不错很实用谢谢分享

痨砖 发表于 2026-1-13 22:02:03

感谢发布原创作品,程序园因你更精彩

端木茵茵 发表于 2026-1-14 10:36:21

感谢分享,学习下。

仟仞 发表于 2026-1-16 05:15:39

很好很强大我过来先占个楼 待编辑

怀陶宁 发表于 2026-1-18 08:14:04

这个有用。

仲水悦 发表于 2026-1-18 14:24:14

分享、互助 让互联网精神温暖你我

红弘丽 发表于 2026-1-20 15:38:49

不错,里面软件多更新就更好了

村亢 发表于 2026-1-21 06:16:41

东西不错很实用谢谢分享

庞环 发表于 2026-1-21 17:51:45

鼓励转贴优秀软件安全工具和文档!

蒙飘 发表于 2026-1-26 08:31:02

yyds。多谢分享

均浇 发表于 2026-1-30 06:16:35

分享、互助 让互联网精神温暖你我

讲怔 发表于 2026-2-1 04:45:55

不错,里面软件多更新就更好了

诈知 发表于 2026-2-5 03:44:39

很好很强大我过来先占个楼 待编辑

高小雨 发表于 2026-2-5 08:28:02

感谢分享,学习下。

劳欣笑 发表于 2026-2-5 11:16:41

不错,里面软件多更新就更好了

嗳歉楞 发表于 2026-2-7 04:26:31

感谢分享,下载保存了,貌似很强大
页: [1] 2
查看完整版本: 模拟实现 strcmp(字符串比较) --浅谈C语言