当前位置: 代码迷 >> C语言 >> 解释一下程序哈
  详细解决方案

解释一下程序哈

热度:308   发布时间:2007-11-01 14:11:34.0
以下是引用nuciewth在2007-11-1 13:42:20的发言:

#include<stdio.h>
int main()
{
char str[81];
int i,j;
char ch;
gets(str);
ch=getchar();
for(i=j=0;str[i]!='\0';i++)
{

if(str[i]!=ch)
{
str[j++]=str[i];
}
}
str[j]='\0';
printf("%s\n",str);
return 0;
}
//怎么不行了?

不好意思哦,我现在才发现那个封号是我写的...谢谢了哈.


----------------解决方案--------------------------------------------------------
char str[81];
int i,j;
char ch;
gets(str);
ch=getchar();
for(i=j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
printf("%s",str);

把上面的程序改成:
.
.
.
str[j]=str[i];
j++;
.
.
.
就这两句变了,别的不变,程序为什么就不行了?

[此贴子已经被作者于2007-11-1 14:48:23编辑过]


----------------解决方案--------------------------------------------------------

汗,如果加大括号你再试下.


----------------解决方案--------------------------------------------------------
回复:(nuciewth)汗,如果加大括号你再试下.
我好象都没有用大括号的习惯,难怪老出错.呵呵。 
----------------解决方案--------------------------------------------------------
要理解为什么会有问题.
if else for while...的作用范围只限制在第一个语句.
----------------解决方案--------------------------------------------------------
s1[i++]=s2[j++];//因该项是把s2的值赋给s1
----------------解决方案--------------------------------------------------------