C语言字符串尾部的*号全部删除前面和中间的*号不动如****A*BC*DEF*G******* 删除后为****A*BC*DEF*G

#include <stdio.h>
void fun( char *a )
{
int i;
for(i=0;a[i]!='\0';i++)
i--;
for(;a[i]=='*';i--);
a[i]='\0';

}

main()
{ char s[81];
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after deleted:\n");puts(s);

} 为什么没有运行啊??????fun函数里出现什么有问题?帮我改改一下啊·、谢谢啊,能解释一下更好。

第1个回答  2012-01-31
for(i=0;a[i]!='\0';i++)
i--;
这里不是死循环了吗,应该在for后面加;吧
改成这样:
for(i=0;a[i]!='\0';i++);
i--;
第2个回答  2012-01-31
void fun( char *a )
{
int i;
for(i=0;a[i]!='\0';i++);
i--;
for(;a[i]=='*';i--)
a[i]='\0';

}本回答被提问者采纳
相似回答