strstr的实现(秒懂)

 不多bb,直接上代码!!!

有错的话,希望评论区暴力指出!!

真心一起提高ヾ(≧▽≦*)o 

char* my_strstr(const char* a, const char* b)
{
    assert(a && b);//经典断言,为了安全!!!

    //因为要返回找到的首地址,所以先记录
    const char* cp = a;
    
    while (*cp)//以a的每一个字符为开始来判断
    {
        const char*s1 = cp;
        const char*s2 = b;
        
        //先来个特殊情况,最后再看会更好!!!
        //如果你找空,那就整个字符串都给你吧。
        if (*b == '\0')
            return (char*)a;
        //找
        while (*s1 == *s2 && *s1 && *s2 )//找到相等的就s2++去判断下一位
        {
            s1++; 
            s2++;
        }
        //断
        if (*s2 == '\0')//成功判断到s2的末尾,那么成功地找到了!!!!
            return cp;
        
        cp++;//没成功就下一个字符吧。。。
    }

    return NULL;//最后没找到就返回NULL

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值