有个题目编程实现字符串拷贝函数strcpy(),很多人往往很快就写出下面这个代码。
void strcpy( char *strDest,char *strSrc ) { while(( *strDest++ = * strSrc++) != ' ' );//逐个赋值字符串数组中的数据,知道字符串结束 }
其实仔细看看这个实现过程并不完美,严格来说非常不严谨,我们可以完善一下。
char * strcpy( char *strDest, const char *strSrc )//将源字符串加const,表明只读是输入参数 { assert( (strDest != NULL) && (strSrc != NULL) );//对源地址和目的地址加非0断言,判断有效性 char *address = strDest; while( (*strDest++ = *strSrc++) != 0');//逐个复制 return address; }
这样程序看起来完善多了,面试官也会很满意的。