张传旭 2016-06-05 13:02 采纳率: 92.3%
浏览 1668
已采纳

输入例如:aabb2222ccc 输出a2b2c3 ,不知道怎么用一次循环就搞定

 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int del_other_char(char *str_old, char *str_new)
{
    int ret = 0;
    if (str_old == NULL || str_new == NULL)
    {
        return -1;
    }
    while (*str_old != '\0')//去除除了小写字母以外的任何字符,拷贝到新的字符串中
    {
        if (*str_old >= 'a' && *str_old <= 'z')
        {
            *str_new++ = *str_old;
        }
        str_old++;
    }
    *str_new = '\0';
    return ret;
}
int change_str(char  *str_old, char *str_new)
{
    int ret = 0;
    if (str_old == NULL || str_new == NULL)
    {
        return -1;
    }
    while (*str_old != '\0')
    {
        int ncount = 1;
        while (*str_old == *(str_old + 1))
        {
            ncount++;
            str_old++;
        }
        *str_new++ = *str_old++;
        *str_new++ = ncount + 48;
    }
    *str_new = '\0';
    return ret;
}
int main()
{
    int ret = 0;
    char *str_old = "23423aaaaaabbbbbdddddawewewew323eeee eee2323tyuttt";
    char str_new1[100];
    char str_new2[100];
    ret = del_other_char(str_old, str_new1);
    if (ret != 0)
    {
        printf("ERROR!!! func del_other_char()");
        return ret;
    }
    ret = change_str(str_new1, str_new2);
    if (ret != 0)
    {
        printf("ERROR!!! func change_str()");
        return ret;
    }
    printf("%s", str_new2);
    system("pause");
}


  • 写回答

3条回答 默认 最新

  • threenewbee 2016-06-05 13:21
    关注
     #include <iostream>
    #include <memory>
    
    using namespace std;
    
    int main()
    {
        int stat[256];
        memset(&stat[0], 0, sizeof(int) * 256);
        char s[200] = "aabb2222ccc";
        char *p = &s[0];
        while (*p != '\0')
        {
            stat[(int)*p]++;
            p++;
        }
        for (char i = 'a'; i <= 'z'; i++)
            if (stat[(int)i] != 0) cout << i << stat[(int)i];
        cout << endl;
        return 0;
    }
    

    http://codepad.org/6Fd8V6z0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码