转载:如何不用库函数实现strcpy函数

#include <assert.h>
#include <iostream>
char* strcpy(char* strDest, const char* strSrc) { assert((NULL != strDest) && (NULL != strSrc)); //1 char *strDestCopy = strDest; //2 while ((*strDest++ = *strSrc++) != '\0'); //3 return strDestCopy; //4 } void main() { char a[20], c[]="i am teacher!"; strcpy(a, c); std::cout<< a <<std::endl; }

1.要检查指针的可用性,不能用(!strDest)||(!strSrc)或!(strDest&&strSrc)虽然char*可以隐式转换成bool但不稳定,使用断言需要包含头文件

2.保存原始指针

3.不可写成while (*strSrc!='\0') *strDest++=*strSrc++ ;这样就没有把字符'\0'赋值进去

4.返回原始值使其可以支持链式表达式

 

文章出处:http://blog.csdn.net/zzyoucan/article/details/8557911

posted @ 2019-02-15 23:37  Daniel.L  阅读(297)  评论(0)    收藏  举报