最近在牛客网上看到一道面试题,非常的经典,也非常基础,实现一个strcpy函数的完整版,想当初我面试的时候,还不一定能够考虑得如此完美,对此,我将这个例子做一下总结:
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}要点一:strSrc参数最好是加上const,这就意味着数据不可变更,保护了数据,别看只是小小的一个关键字,却实现了对数据的保护。
要点二:程序中对两个函数的参数进行了非空检验,增强了该接口的健壮性。
要点三:函数在退出的时候实时的返回了目的地址,方便开发人员的调试。