编写一个函数删除字符串a中

C++ 求编写一个函数void fun(char *a),删除字符串a中除前导和尾部连续的#之外,其余的#全部删除。在main函数中,从键盘输入带#且无空格的字符串,调用fun函数处理字符串,并将字符串输出到屏幕
例如:###a#b##,运行结果为###ab##

遍历比较字符是否为*,将后续字符全部前移一位
你这参数是char a,不是字符串啊,还请给出字符串参数的样式

void fun(char *a)
{
  int i,n = 0;
  int s=-1,e=-1;
  for(i=0;a[i] != '\0';i++)   //首次遍历,找出前导和续尾*号外其余字符的起点和终点位置,以便下次循环处理
  {
    if(a[i] != '*') //找到不是*号的字符
    {
      if(s==-1)  //如果尚未标记起点,则该字符位置即为起点
        s = i;
        e = -1; //结束位置先设置为无效
    }
    else //如果找到一个*号
    {
      if(s >= 0 && e==-1)   //如果已经标记了起点,且没有标记终点,那么将当前*号字符位置作为终点
        e = i; 
    }
  }
  if(e == -1) //不是用*号结尾,则数组尾部即为终点
    e = i;
  while(s < e) //遍历处理所有中间字符
  {
    if(a[s] == '*') //遇到*号删除
    {
      for(i=s;a[i] != 0;i++) //将起点到字符串结束的字符全部前移一个位置
       a[i] = a[i+1];
      e--; 
    }
    else
      s++;
  }
}

void main()
{
    char a[100];
    scanf("%[^\n]",a);
    fun(a);
    printf("%s\n",a);
    system("pause");
}