由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符

#include <iostream.h>
void main()
{
char ch;
char a[100];
int i,j;
cout<<"请输入字符串";
cin>>a[100];
cout<<"输入指定需要删除的字符"<<endl;
cin>>ch;
for(i=0;a[i]='\0';i++)
{
if(a[i]!=ch)
{
a[j++]=a[i];
}

}
a[i]='\0';
cout<<a[i];
}

这个c++程序对吗

不对,,
正确如下:
for(i=0;a[i]!='\0';i++)
{
if(a[i]==ch)

{
j=i;

while(a[i]!='\0')
{
a[j]=a[++i];
j=i;

}

}
}
a[i]='\0';
(以上代码可以覆盖你的for语句)
你那个第一j没有赋值,,第二不是从你要删除的字符开始向前移动的,,第三要注意j++与++j的区别追问

我j赋值了的
你把全部代码给我吧 这样说不清 要确保可以运行呃
还有a[i]='\0';是什么意思

追答

看到的有点晚,好需要回答吗?a[i]='\0',就是把字符串的最后一个字符当成结束标志(‘\0’)

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