以下给出的几种方案,在面试官看来,最后的答案才是完美的。
方案1:
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
方案2:将原串用const修饰,表示不可以被修改
void strcpy( char *strDest, const char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
方案3:对参数断言判断:
void strcpy( char *strDest, char *strSrc )
{
assert(strDest&&strSrc);
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
方案4:将目的地址返回,为后面其他工作铺垫
char* strcpy( char *strDest, char *strSrc )
{
assert(strDest&&strSrc);
char* p=strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return p;
}