#include " iostream.h " #include " stdio.h " void main() ... { char s[20], c; gets(s); cin>>c; int i,j; for(i=0;s[i]!='';i++) if(s[i]==c) ...{ for(j=i;s[j]!='';j++) s[j]=s[j+1]; s[j]=''; i--; // 容易忽略这里 } puts(s);} 在删除字符串数组的特定字符的算法当中,容易在删除字符后忘记倒退一格。 如果把i--去掉,输入含有连续相同字符为目标的字符串,如abccccd,要删除c,则会犯下逻辑错误。 若该算法有错,请大人们指正,谢谢!