日常不会,,,,,,,,,,,,,,,

假定字符串中只包含字母和,编写函数删除字符串中字母前面的,并在main函数中调用并输出。 例如:字符串为ADFEG,程序执行后应该输出,ADFEG*。

代码如下,如有帮助,请帮忙采纳一下,谢谢。

#include <stdio.h>

void fun(char* s)
{
    char* t;
    int i,len = 0;
    int endpos =0;
    char *lst;
    //计算字符串的长度
    while(s[len] != '\0')
        len++;
    //从后往前找第一个非*字符
    endpos=len -1;
    while(s[endpos] == '*')
        endpos--;

    //abcde******  11 - 4 -1//len -1 - endpos

    s[endpos+1] = '\0';
    while(*s != '\0')
    {
        if(*s == '*')
        {
            t =s;
            while(*t != '\0')
            {
                *t = *(t+1);
                t++;
            }
            t--;
            *t = '\0';
        }else
            s++;
    }
    //补齐最后的*
    for (i=0;i<len-endpos-1;i++)
    {
        *s = '*';
        s++;
    }
    *s = '\0';
}

int main()
{
    char buf[100]={0};
    gets(buf);
    fun(buf);
    printf("%s\n",buf);
    return 0;
}