实现strcat( )和strncat( )函数

1.实现strcat( )函数

strcat()是c/c++中的字符串连接函数,实现strcat()函数的思路为先将目标字符串的结束符’\0’替换成源字符串的首字符,然后依次替换。注意,这里我们在定义目标字符串的时候利用字符数组,并且确保字符数组的大小足够存储连接后的字符串,否则,会发生栈溢出的情况,若用指针方法定义字符串,也会发生类似的栈溢出情况。
下面为我的strcat()函数代码:

char  *my_strcat(char *des, const char *src)
{
    assert(des);
    assert(src);

    char *ret = des;

    while (*des++)
    {
        ;
    }
    des--;
    while (*des++ = *src++)
    {
        ;
    }

    return  ret;
}

int main()
{
    char des[20]="hello ";
    char *src = "world!";

    char *ret=my_strcat(des, src);

    printf("%s\n", ret);

    system("pause");
    return 0;
}

2.实现strncat( )函数

strncat()函数的是将源字符串的前n个字符连接到目标代码后面,当然,我们也要为目标字符串数组分配足够大的空间。字符串连接结束标志为n等于零或者遇到源字符串结束符。
下面为我的strcat()函数代码:

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

char *my_strncat(char *des, const char *src, size_t count)
{
    assert(des);
    assert(src);
    assert(count > 0);

    char *ret = des;

    while (*des++)
    {
        ;
    }
    des--;
    while ((count != 0) && (*des++ = *src++))
    {
        count--;
    }

    return ret;
}

int main()
{
    char des[20]="hello ";
    char *src = "world!";

    char *ret2 = my_strncat(des, src,3);
    printf("%s\n", ret2);

    system("pause");
    return 0;
}

在这里呢,小主建议大家在实现自己的函数的时候,最好将其封装成函数,在主函数中调用,这样更加规范。虽然我们的代码比不上库函数里的代码的简洁性以及高效性等,但是我们要做到基本的规范性,是吧,你说呢,哈哈,好了,谢谢博友路客的访问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值