c - 如何编写将字符串复制到某个位置的递归函数?

标签 c

有关如何编写获取 2 个参数的 RECURSIVE 函数的任何想法: 第一个是地址 d(char 的位置)。 第二个是字符串。 该函数将字符串 s 复制到从 d 开始的位置。 该函数返回 d 作为结果! 我们可以在没有 strcpy 的情况下做到这一点吗?

    copy_r(char *s, char *d)
{
    *d = *s;
    if(*s)return copy_r(++s, ++d);
}

哪里错了? (成立 ) 放还是有问题!如果位置 d 与已经被 s 占据的某个位置重叠怎么办?
例如这个 strcpy(p1, "abcdefghijklomopqrstuvwqyz"); printf(copy_r(p1, p1+10));不起作用 –

输出应为 klomopqrstuvwqyz

最佳答案

哪里出错了

嗯,没有任何错误,这个代码示例工作正常...我看到的唯一问题是它没有完全按照您的预期工作。您提到您希望它函数返回 d 作为结果,但您没有让它这样做。

该代码当前采用 s 并将内容复制到 d 中,因此如果您有类似的内容:

char * str = "hello";
char * ptr = malloc(6);
copy_r(str, ptr);
// now ptr has "hello" too

关于c - 如何编写将字符串复制到某个位置的递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708497/

相关文章:

c - 刚开始使用 C 中的类

c++ - 如何将 WndProc 用作类函数

c - 在Linux上编译OpenCL ICD加载器时出错

c - 用于在具有所需扩展名的目录中递归列出文件名的 Windows C 代码

c - 如何在不强制使用 c 的情况下为每个线程分配任务,即每个线程在完成第一项工作后需要执行一些工作?

c - 如何初始化枚举?

c - 读取 16 位灰度 TIFF

C 编程结构

C 程序符合要求,但控制台屏幕仍然黑屏

c - 使用 。检索结构中的值