C语言strcat函数实现.

strcat函数:

  char *strcat*(char *d,const char *s)

将s串复制到d串结尾(覆盖d的'\0'),并在新串后加'\0'.当然,d串要有足够的空间容得下s串的内容.

char *my_strcat(char *d,const char *s){
    char *str_dest=d;
    while(*d!='\0')
        d++;
    while((*d++=*s++)!='\0');
    return str_dest;
}

1.第一行为了保存d的地址,返回str_dest也是为了链式表达式.

2.while((*d++=*s++)!='\0')是将s串复制到d的结尾,并且s中的'\0'也复制过去了.经典的源码写法是:

     while(*d++=*s++);//同样可以达到目的

3.这个函数的前提是d串要有足够的空间容得下s串.所以如果这样使用函数将会犯错.

char *d="I am Brillliu";
char *s="I am a student";
printf("%s",my_strcat(d,s));

这里d串的长度很显然容不下了s串.所以使用这个函数的时候我们都应该尽量将目标串的空间申请的大一点,这样才足够的安全.

char d[30]="I am Brillliu";

 

转载于:https://www.cnblogs.com/brillliu/p/3549780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值