qfl_sdu_edu 2021-07-07 00:26 采纳率: 94.7%
浏览 66
已采纳

删除字符串中多有字母前的星号

假设一个字符串中只有星号和英文字母,请删除所以字母前的星号,并输出修改后的字符串。如字符串为abcdef修改后的字符串就是abcdef*

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-07-07 00:32
    关注

    代码如下:

    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败