#include <assert.h>
#include<iostream.h>;
char * strcpy(char * strDest,const char *strSrc)
{
assert((strDest!=NULL) && (strSrc !=NULL));//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);
cout<<a<<endl;
}
1.要检查指针的可用性,不能用(!strDest)||(!strSrc)或!(strDest&&strSrc)虽然char*可以隐式转换成bool但不稳定,使用断言需要包含头文件
2.保存原始指针
3.不可写成while (*strSrc!='\0') *strDest++=*strSrc++ ;这样就没有把字符'\0'赋值进去
4.返回原始值使其可以支持链式表达式