自己制作strcpy()函数

#include<stdio.h>

#include<assert.h>

void my_strcpy1(char* dest,char* src)//若满分是10分,现在是6分

{//把src指向的字符串拷贝到dest指向的空间,包含‘\0’

while(*src!='\0')

{

*dest=*src;

dest++;

src++;

}

*dest=*src;//将‘\0’传过去

}

void my_strcpy2(char* dest,char* src)//优化 //若满分是10分,现在是6.5分

{

while(*src!='\0')

{

*dest++=*src++;//后置++,先用后变

}

*dest=*src;//将“\0”传过去

}

void my_strcpy3(char* dest,char* src)//优化 //若满分是10分,现在是7分

{

while(*dest++=*src++)

{

;

}

}

void my_strcpy4(char* dest,char* src)//优化 //若满分是10分,现在是7.5分

{

if(dest!=NULL&&src!=NULL) //防止在调用该函数时,输入的指针错误

{

while(*dest++=*src++)

{

;

}

}

}

void my_strcpy5(char* dest,char* src)//优化 //若满分是10分,现在是8分

{

assert(dest!=NULL);//断言

assert(src!=NULL);//断言

//assret()的头文件是 #include<assert.h>

while(*dest++=*src++)

{

;

}

}

void my_strcpy6(char* dest,const char* src)//优化 //若满分是10分,现在是9分

{ //const确保src传给dest

assert(dest!=NULL);//断言

assert(src!=NULL);//断言

while(*dest++=*src++)//若 dest与src写反,会因为const报错

{

;

}

}

char* my_strcpy7(char* dest,const char* src)//优化 //若满分是10分,现在是10分

{ //const确保src传给dest

char* ret=dest;

assert(dest!=NULL);//断言

assert(src!=NULL);//断言

while(*dest++=*src++)//若 dest与src写反,会因为const报错

{

;

}

return ret;

}

int main()

{

char arr1[]="*********************";

char arr2[]="sheng";

my_strcpy1(arr1,arr2);

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

my_strcpy2(arr1,arr2);

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

my_strcpy3(arr1,arr2);

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

my_strcpy4(arr1,arr2);

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

my_strcpy5(arr1,arr2);

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

my_strcpy6(arr1,arr2);

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

my_strcpy7(arr1,arr2);

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

printf("%s\n",my_strcpy7(arr1,arr2));

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值