我试图使这个代码递归,但由于某种原因它不起作用。
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