请看下这个c语言程序1!

来源:百度知道 编辑:UC知道 时间:2024/09/18 05:37:06
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i,m;
char a[]="aaebb ccecc ddeffegg";
printf("%s%d\n",a,strlen(a));
for (i=0;i<=strlen(a);i++)
while (a[i]=='e')
{
for (m=i;m<=strlen(a)-i;m++)
a[m]=a[m+1];
}

printf("%s%d",a,strlen(a));
return 0;
}
这个为什么会是死循环?

当a[i]=='e'时进入while循环
此时i的值就没发生变化了while条件一直为真,所以就死循环了

可以这样改
while (a[i]=='e')
{
for (m=i;m<=strlen(a)-i;m++)
a[m]=a[m+1];
break;
}

不过我根据你程序的意思,好像是要将字符串中的e去掉,你
for (m=i;m<=strlen(a)-i;m++) 中的条件m<=strlen(a)-i也有点问题