yukijudai... 2021-12-27 21:37 采纳率: 66.7%
浏览 28
已结题

只压缩其中重复小写字母的字符串

通过键盘输入一个字符串,请编写一个字符串压缩程序,将字符串中连续出现的重复小写字母(a~z)进行压缩,并输出压缩后的字符串。压缩规则如下:

1)仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。

2)压缩字段的格式为"字符重复的次数+字符"。

【输入】字符串

【输出】压缩后的字符串

示例:  输入:"cccddecc”,输出:"3c2de2c"
输入:“AAA”,输出:"AAA"**

  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-27 21:45
    关注
    
    
    #include <stdio.h>
    #include <string.h>
    #define LEN 100
    void stringZip(char *pInputStr, long lInputLen, char *pOutputStr)
    {
        char *p = pInputStr;
        int num = 1;
        int i = 0;
        int size;
        int temp;
        int j;
        while (*p != '\0')
        {
            while (*p == *(p + 1) && *p != '\0' && *p >= 'a' && *p <= 'z')
            {
                num++;
                p++;
            }
            if (num > 1)
            {
                size = 0;
                temp = num;
                while (num)
                {
                    size++;
                    num /= 10;
                }
                num = 1;
                for (j = size; j > 0; j--)
                {
                    pOutputStr[i + j - 1] = '0' + temp % 10;
                    temp /= 10;
                }
                i += size;
                pOutputStr[i++] = *p;
                p++;
            }
            else
            {
                pOutputStr[i++] = *p;
                p++;
            }
        }
        pOutputStr[i] = '\0';
    }
    int main()
    {
        char pInputStr[LEN];
        char pOutputStr[LEN];
        gets(pInputStr);
        stringZip(pInputStr, strlen(pInputStr), pOutputStr);
        printf("%s\n", pOutputStr);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 修改了问题 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)