c/c++语言开发共享我试图使这个代码递归,但由于某种原因它不起作用

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

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=='')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=='') return; *dst++ = *str; if (isspace(*str) while (isspace(*str++)); else ++str; return text_r(dst, str); } 

    为什么你想用递归来做这件事完全超出了我的方式,它只会浪费时间和空间。

    也许这个问题可能会对你有所帮助。 它使用正则表达式解决您的问题

    需要了解更多c/c++开发分享我试图使这个代码递归,但由于某种原因它不起作用,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享我试图使这个代码递归,但由于某种原因它不起作用相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980593.html

      (0)
      上一篇 2021年12月14日
      下一篇 2021年12月14日

      精彩推荐