实现strcpy 和 strcat函数

首先分析一下strcpy 和strcat

strcpy()函数

        函数参数:

            dest:目标数组的首地址

            src:源字符串的首地址

        函数功能:

            将src指针指向的字符串拷贝到dest指针指向的空间;

            拷贝时,连同src指针指向的字符串末尾的'\0'一同拷贝;

        返回值:

            dest指针

        注意:

            1> dest指针指向的空间要足够大;
            2> 拷贝时,连同src指针指向的字符串末尾的'\0'一同拷贝;

strcat()函数

        函数参数:
            dest:目标数组的首地址
            src:源字符串的首地址
        函数功能:
            将src指针指向的字符串连接到dest指针指向的字符串之后;
        返回值:
            dest指针
        注意:
            1> dest指针指向的空间要足够大;
            2> 连接前,两串均以'\0'结束;
                连接后,dest指针指向的字符串末尾的'\0'被src指针指向的字符串的首字符代替;
                连接后,新串末尾加'\0';

 

 

/*
function:
实现strcpy、strcat函数;

*/

#include<stdio.h>
#include<string.h>
char *mystrcpy(char *dest,char *src); //声明
char *mystrcat(char *des,char *sr);   //声明

int main()
{
 char st1[20]="hello";
 char st2[20]="eagle";
 char st3[10]="666";
 mystrcpy(st1,st2);
 puts(st1);
 mystrcat(st2,st3);
 puts(st2);
return 0;
}

char *mystrcpy(char *dest,char*src)
{
 	int i;
        for (i = 0; src[i] != '\0'; i++)//用源字符串将目标字符串覆盖替换
                   dest[i] = src[i];
        for ( ; i <  strlen(dest); i++)//在目标串后面加'\0'
                   dest[i] = '\0';
        return dest;
}

char *mystrcat(char *des,char *sr)
{
	int  dest_len = strlen(des);//求待接目标串长度
        int i;
        for (i = 0;sr[i]!= '\0' ; i++)
              des[dest_len + i] = sr[i];//从目标串的最后一个字符开始粘贴
        des[dest_len + i] = '\0';//在目标串后面加'\0'
        return des;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值