面试遇到的写代码题:
递归
char* c_copy(char* dst,const char* src)
{
char* temp = dst;
if (*(src) =='\0')
{
*dst = '\0';
}
else
{
*dst = *src;
dst++;
src++;
c_copy(dst,src);
}
return temp;
}
//用递归是为了向内存中赋值,由于dst是局部变量,每次都在变化,所以用temp保存初始地址,使得返回值指向传入地址。
非递归
char* c_copy(char* dst,char* src)
{
if (!src)
{
return NULL;
}
int i = 0;
while(src[i]!='\0')
{
dst[i] = src[i];
i++;
}
return dst;
}