C语言对strlen、strcpy和strcat的模拟实现

  • strlen函数:计算字符串sting的长度,并返回字符串string的长度,遇到‘\0’停止。

  • 函数实现:

#include <assert.h>
#include <stdio.h>
int my_strlen(const char* str)
{
    assert(str);
   int count = 0;
    while(*str!= '\0')
    {
        count++;
        str++;
    }
    return count;
}
int main()
{
    char a[] = "abc\0derg";
    int len = my_strlen(a);
    printf("%d", len);
    return 0;
}
  • strcpy函数:是将一个字符串复制到另一块空间地址中 的函数,‘\0’是停止拷贝的终止条件,同时也会将 '\0' 也复制到目标空间。

  • 函数实现:

#include <assert.h>
#include <stdio.h>
void my_strcpy(char* destination, const char* src)//源头拷贝到目的地
{
    assert(destination && src);
    while (*destination++ = *src++)
    {
        ;
    }
}
int main()
{
    char arr1[10] = "大佬";
    char arr2[10] = "菜鸡";
    my_strcpy(arr2, arr1);
    printf("%s", arr2);
    return 0;
}
  • strcat函数:又被称为是字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串。

  • 函数实现:

#include <stdio.h>
#include <assert.h>
char* my_strcat(char* dest,const char* src)
{
        char* ret = dest;//保存目标地址源头
        assert(dest && src);
        while (*dest != '\0')//找到目标空间中的\0
        {
            dest++;
        }
        while (*dest++ = *src++)//拷贝 需要将\0一同拷贝进去
        {
            ;
        }
        return ret; //返回起始目标地址
}

int main()
{
        char arr1[40] = "我从一个rubbish";
        char arr2[40] = "到一个Study god";
        my_strcat(arr1, arr2);
        printf("%s", arr1);
        return 0;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值