帮忙解释一下这个c程序

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:18:02
#include<stdio.h>
void main()
{char a[]="Hello@126.com&&Hi2008@163.com" ;
int i,j;
for(i=j=0;a[i]!='\0';i++)
if(a[i]!='2')
a[j++]=a[i];

a[j]='\0';
printf("%s",a);
}
程序执行后会将字符串中的所有2删掉,其余保留,帮我解释一下中间最关键部分是什么意思,就是for那的,是怎样执行的?谢谢

#include<stdio.h> //头文件
void main() //main()函数
{char a[]="Hello@126.com&&Hi2008@163.com" ; //字符串定义
int i,j; // 记录数组索引
for(i=j=0;a[i]!='\0';i++) //i,j均从0开始,到字符串结束符退出
if(a[i]!='2') //字符不是2时
a[j++]=a[i]; //相当于{a[j]=a[i];j++;},把i处的字符复制到j处
//注意,i是一直在增加的,而j在字符为2时不加,也就是
//把字符2给覆盖了

a[j]='\0'; //加上结束符
printf("%s",a); //输出
} //函数结束