C语言二级考试第三大题

#include <stdio.h>
void  fun( char *a )
{

}

main()
{  char  s[81];  int  n=0; void NONO ();
   printf("Enter a string:\n");gets(s);
   fun( s );
   printf("The string after moveing:\n");puts(s);
   NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *in, *out ;
  int i ; char s[81] ;
  in = fopen("in.dat","r") ;
  out = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(in, "%s", s) ;
    fun(s) ;
    fprintf(out, "%s\n", s) ;    
  }
  fclose(in) ;
  fclose(out) ;
}
 

void  fun( char *a )
{
	int i=0,flag,length;
	while(a[i]=='*'){		//找到第一个字母所在位置   
		i++;
	}
	flag=i;
	while(a[i]!='\0'){		//计算字符串的长度,字符串的结尾为空字符'\0' 
		i++;
	}
	length = i;
	
	//先在字符串后面加上flag个'*'
	for(int i=0;i<flag;i++){
		*(a+length+i)='*';
	}	
	//将字符串向前移动 
	for(int i=0;i<length;i++){
		a[i]=a[i+flag];
	}
	a[i]='\0'; 			//注意一下字符串后面加一个空字符 

}