你在遍历字符串长度的时候 用的是str
str 已经发生了改变,后面在做替换的时候 str[] 不会是你以为的结果。。
我也不知道有没有解释清楚。。
你把遍历那部分 改成这样就可以了:
char *ptr = str; while(*ptr != '\0'){ ++originallength; if(*ptr == ' ') ++blanklength; ++ptr; }