#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);
}
#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,则会犯下逻辑错误。
若该算法有错,请大人们指正,谢谢!