C语言问题求解答,指针,函数

img


如图中所述,希望能提供一些思路,尤其是针对删除中间的星同时如何保留两边的星⭐

供参考:

#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;
}

双指针吧,前后各一个开始遍历,遇到第一次不等于★就开始删,结束条件,前后指针相同