调试了一下,问题在字符串输入后,没有清系统stdin(标准输入流)的字符残余,导致残余字符被赋值给字符变量c。增加清系统stdin(标准输入流)的字符残余操作可解决问题。
修改代码和注释如下:
#include
void main()
{
char str[50],c;
int i,j;
printf("Input a string:");
scanf("%s",str);
getchar(); //清系统stdin流残余字符串
printf("char:");
c=getchar();
j=0;
for(i=0;str[i]!='\0';++i)
if(str[i]!=c)
str[j++]=str[i];
str[j]='\0';
printf("Output a string:%s",str);
}
在VC6调试通过,如下图:
供参考。
没有c,你作比较的时候和谁去比较呢?
变量c就是你要指定删除的字符吧,你不要它的话怎么指定呢?
没C你怎么删指定的字符。。。