供参考:
#include <stdio.h>
void fun( char *a, char *f,char *t )
{
int i = 0;
char *q = a;
while(q < f)
{
a[i]=*q;
q++;
i++;
}
while(q < t)
{
if(*q != '*')
{
a[i] = *q;
i++;
}
q++;
}
while(*q)
{
a[i]=*q;
q++;
i++;
}
a[i]='\0';
}
int main()
{
char s[81],*t, *f;
printf("Enter a string:\n");
gets(s);
t = f = s;
while(*t) t++;
t--;
while(*t == '*') t--;
while(*f == '*') f++;
fun(s , f, t);
printf("The string after deleted:\n");
puts(s);
return 0;
}
双指针吧,前后各一个开始遍历,遇到第一次不等于★就开始删,结束条件,前后指针相同