C++字符串拷贝实现:递归方法&非递归方法

来源:互联网 发布:上海共创空间 知乎 编辑:程序博客网 时间:2024/05/17 05:53

面试遇到的写代码题:
递归

    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;}
0 0