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