虽然楼主的语气让我无比纠结而且完全没有看懂,不过他/她好歹也是给了代码的。 如果有下次的话,建议将这段代码的目的讲清楚,并且预期和出现的情况也讲清楚,不明不白的,谁知道怎么回事。 在测试数据123456789时,输出123454321。 for(i=9;buf[i-1]=='0' && i>4;--i);在这个测试数据中没有执行,貌似意思就是清掉后头的0.但是这个0是从前头倒序复制过来的。所以如果前头全是0的话,这句话应该会执行。 所以在case为 "000006789"的时候,输出为0000 我没有看出有什么问题,虽然这代码我完全不知道有什么用。