C语言移动字符串中的*号问题

快考试啦,有模拟题:
规定输入的字符串中只包含字母和*号.请编写函数fun,它的功能是:将字符串中前面所有的*号都移动到字符串后边去.例如***A*B**CCC*移动之后就应该是A*B**CCC****.
题目中给了如下程序
只能在FUN函数的那个花括号里写,其他的什么都不能动.请高手来帮帮小弟
#include <stdio.h>
#include <conio.h>
void fun(char *a)
{

}

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

}

第1个回答  2008-12-25
#include <stdio.h>
#include <conio.h>
void fun(char *a)
{
char *p,*q;

for(p=a;*p=='*';p++);
for(q=p;*q;q++)
*(q-(p-a))=*q;
for(;p>a;p--,q++)
*q='*';
*q=0;
}

main()
{
char s[81],*p;
printf("Enter a string:\n");gets(s);
fun(s);
printf("The string after moveing:\n");puts(s);
}本回答被提问者采纳
第2个回答  2008-12-25
O C语言啊 我不懂 别找我额~~