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");
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯