可能重复:
我试图使此代码递归但由于某种原因它不起作用
我正在尝试使用 RECURSION 编写程序将多个空格更改为一个空格有人可以帮忙吗?示例“a_______b”更改为“a_b”这是我尝试了很长时间的任务!谁能帮忙?
在这里我尝试了这个,但我认为该设计不适用于递归
void text_r(char *str)
{
char *dst = str;
if(*str=='\0')return ;
*dst++ = *str;
if (isspace(*str)) {
do ++str; while (isspace(*str));
--str;
}
return text_r(str++);
}
我在没有递归的情况下编写了代码,但我在转换它时遇到了问题
void compress_spaces(char *str) { char *dst = str;
for (; *str; ++str) {
*dst++ = *str;
if (isspace(*str)) {
do ++str; while (isspace(*str));
--str;
}
}
*dst = 0;
}