永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-02-22 18:34
  • 提问者网友:浮克旳回音
  • 2021-02-22 14:22
c语言 程序是 在一行字符串中删除指定字符。但是不懂while 以后那些代码的意思。。

#include
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;ja[j]=a[j+1];
a[j]='\0';
}
if(a[i]!='\0'&&a[i]!=c)
i++;
}
puts(a);
return 0;
}
希望大神解释一下。。
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-02-22 14:32
这样写吧, 可读性更高
#include 
#include 


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 {
if(a[i]==c)
{
continue;
}
a[j++]=a[i];
}
a[j]='\0';
puts(a);
return 0;
}
全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-02-22 14:49
#include #include void del(char *s,char c) { int i = 0,j = 0; for(i=0;s[i]!='\0';) { if(s[i]==c) { for(j=i;s[j]!='\0';j++) { s[j]=s[j+1]; } } else { i++; } } } void main(void) { char s[80]={0}; char c; gets(s); //从输入流读取一行,直至遇到换行符,windows回车键盘包含换行:\r\n //getchar(); //从输入流读取一个字符,把这行注释掉 c=getchar(); //再读取一个字符 del(s,c); //执行删除函数 puts(s); //输出字符至输出流 system("pause"); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯