c语言 程序是 在一行字符串中删除指定字符。但是不懂while 以后那些代码

c语言 程序是 在一行字符串中删除指定字符。但是不懂while 以后那些代码的意思。。
#include <stdio.h>
int main()
{
char a[100],c;
int i=0,j,len;
printf("please enter a string:");
scanf("%s",&a);
getchar();
gets(a);
printf("enter:");
scanf("%c",&c);
while(a[i]!='\0')
{
len=strlen(a);
if(a[i]==c)
{
for(j=i;j<len-1;j++)
a[j]=a[j+1];
a[j]='\0';
}
if(a[i]!='\0'&&a[i]!=c)
i++;
}
puts(a);
return 0;
}
希望大神解释一下。。

这样写吧, 可读性更高

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[]) 
{
char a[100],c;
int i,j=0,len;
printf("please enter a string:");
scanf("%s",a);
printf("enter:");
fflush(stdin);
scanf("%c",&c);
len=strlen(a);
for(i=0;i<len;i++)
{
if(a[i]==c)
{
continue;
}
a[j++]=a[i];
}
a[j]='\0';
puts(a);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答