我没看懂这个程序是如何完成将字符串s中所有的字符c删除的功能的,从if下面开始就看不懂了,s[i]和s[j]不都是同一个数组吗?
#include"stdio.h"
main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if (s[i]!='c')
s[j++]=s[i];
s[j]='\0';
puts(s);}
#include"stdio.h"
main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)//这里只有i++,j++在下面,j不随for循环自加1
if (s[i]!='c')
s[j++]=s[i];//每有一个不为'c'的单位出现,j自加1;并且该单位的值,重新赋值给数组s,从s[0]开始,因为j初值为0
else//这加个else便于理解,等价于源代码;该单位的值为'c',就向该单位赋予空值;
s[j]='\0';
puts(s);
}//例如输入abcdec,分别占据s[0]='a',s[1]='b',s[2]='c',s[3]='d',s[4]='e',s[5]='c';
//s[0](j==0),s[1](j==1)还是赋值在原位,
//s[2](这if不成立,j不自加1)s[2]='\0',
//s[3]不为'c'(j==2),所以'd'就赋给了s[2];
//s[4](j==3),'e'赋予s[3],
//s[5]='\0',赋空值;