不能完全删除字符串中非数字字符

img

img

img


先构造个函数 然后在判断是否是不在数字范围内 为什么最后结果会跳着删除

你这个 while + break 和if的效果是一模一样的,如果是if 的话那么有两个连续的非数字就只能删除第一个了,所以我建议你 把 while 改成 if 并且把 break改成 i--
而且你 for 循环 i< 999 万一数组长度小于 999 是会出现溢出问题 的 。 而且这样子做回导致 '\0' 结尾符 被删掉,而且进入死循环。所以建议你识别到结尾符 '\0' 后需要退出循环,也就是 把 i < 999 改成str[i] != '\0'

img

而且这里 可以取到 str[9999] 明显是溢出了的。

img


懂了请采纳哦~