gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:21:25 26 4
gpt4 key购买 nike

有关如何编写获取 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com