(C语言)常用字符串函数的模拟实现

目录

1、strlen的模拟实现

2、strcpy的模拟实现

3、strcat的模拟实现

4、strcmp的模拟实现

5、strstr的模拟实现


1、(求字符串长度)strlen的模拟实现

        求字符串长度的四种方法

2、(拷贝字符串)strcpy的模拟实现

char* my_strcpy(char* dest, const char* src)
{
    assert(dest);
    assert(src);
    char* ret = dest;//记录目标字符串的起始位置,最后返回ret
    while(*dest++ = *src++)
    {
        ;
    }
    return ret;
}

3、(拼接字符串)strcat的模拟实现

char* my_strcat(char* dest, const char* src)
{
    assert(dest);
    assert(src);
    char* s = dest;
    while(*s) //找到目标字符串的结尾‘\0’
    {
        s++;
    }
    while(*s++ = *src++)
    {
        ;
    }
    return dest;
}

4、(比较字符串大小)strcmp的模拟实现

int my_strcmp(const char* str1, const char* str2)
{
    assert(str1);
    assert(str2);
    while(*str1 == *str2)
    {
        if(*str1 == '\0')//两个字符串都比较到了结尾且都相等
        {
            return 0;
        }
        str1++;
        str2++;
    }
    return *str1 - *str2;
}

5、(找字符串中的子串)strstr的模拟实现

char* my_strstr(const char* str1, const char* str2)
{
    assert(str1);
    assert(str2);
    const char* s1 = str1;
    const char* s2 = str2;
    const char* p = str1;
    
    while(*p)
    {
        s1 = p;
        s2 = str2;
        while((*s1 != '\0') && (*s2 != '\0') && (*s1 == *s2))
        {
            s1++;
            s2++;
        }
        if(*s2 == '\0')
        {
            return (char*)p;//找到了
        }
        p++;
    }
               
    return NULL;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值