输入的字符串中只包含字母和*号。请编写程序,将字符串中*号全部删除

要求:不得使用C语言提供的字符串函数
更进一步:删除字符串中的号,但保留末尾的
环境:visual c++2010

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

typedef struct CH
{
char c;
struct CH *next;
}ch;

ch * initCH()
{
char c;
ch *head=(ch *)malloc(sizeof(ch)),*a=NULL,*temp=NULL;
if(!head)
{
printf("创建失败!\n");
exit(0);
}
temp=head;
temp->c='0';
temp->next=NULL;
printf("输入一个字符串,并以-结束。\n");
while(1)
{
c=getch();
if(c=='-')
break;
else if((c>='a'&&c<='z')||c=='*')
{
a=(ch *)malloc(sizeof(ch));
a->c=c;
a->next=NULL;
temp->next=a;
temp=a;
printf("c=%c \n",a->c);
}
}
return head;
}

void show(ch *head)
{
ch *p=head->next;
printf("-----------------\n");
while(p)
{
printf("%c ",p->c);
p=p->next;
}
printf("\n");
}

ch * fun(ch *head)
{
ch *p1=head,p2=head->next;
while(p2)
{
if(p2->c=='
')
p1->next=p2->next;
else
p1=p2;
p2=p2->next;
}
return head;
}

void main()
{
ch *head=initCH();
show(head);
fun(head);
show(head);
}