转载:如何不用库函数实现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

浙公网安备 33010602011771号