gpt4 book ai didi

c - 我试图使这段代码递归,但由于某种原因它不起作用

转载 作者:行者123 更新时间:2023-11-30 15:52:07 25 4
gpt4 key购买 nike

我正在尝试使此代码递归,但由于某种原因它不起作用。

void compress_spaces(char *str)
{
char *dst = str;

for (; *str; ++str) {
*dst++ = *str;
if (isspace(*str)) {
do ++str; while (isspace(*str));
--str;
}
}
*dst = 0;
}

编辑:我试过这个:

void text_r(char *str)
{
char *dst = str;

if(*str=='\0')return ;
*dst++ = *str;
if (isspace(*str)) {
do ++str; while (isspace(*str));
--str;
}//Missing brace from orig is this ok?
return text_r(str++);
}

没用。有什么想法吗?

最佳答案

您的 dst 指针与递归调用函数中的指针不同,请将其作为参数传递。

void text_r(char *dst, char *str) {
if (*str=='\0')
return;
*dst++ = *str;
if (isspace(*str)
while (isspace(*str++));
else
++str;
return text_r(dst, str);
}

顺便说一下,为什么你想用递归来做到这一点,我完全无法理解,它只会浪费时间和空间。

关于c - 我试图使这段代码递归,但由于某种原因它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702016/

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