strcmp函数实现

博客介绍了比较两个字符串的函数功能,若两字符串相等返回零,前者大于后者返回1,反之返回 -1。同时强调了实现该函数的注意点,包括输入参数有效性判断,以及要将字符串强制类型转换成unsigned char *类型进行基于ascii码的比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数功能:

比较两个字符串。设这两个字符串为str1,str2,若str1=str2,则返回零;若str1>str2,则返回1;若str1<str2,则返回-1。(也可以返回0,正数,负数)


注意点:

1、输入参数有效性判断

2、比较是基于ascii码的,所有要强制类型转换成unsigned char *类型。

int strcmp (const char * src,const char * dst)
{
    int ret = 0 ;
    assert(src != NULL);
    assert(dst != NULL);
    //由于比较是基于ascii码的,范围是0-255,要强制类型转换
    while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
        ++src, ++dst;

    if ( ret < 0 )
        ret = -1 ;
    else if ( ret > 0 )
        ret = 1 ;

    return ret;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值