张传旭 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条)

报告相同问题?

悬赏问题

  • ¥50 MATLAB APP 制作出现问题
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
  • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
  • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
  • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
  • ¥15 信息管理系统的查找和排序
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
  • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
  • ¥15 PB中矩阵文本型数据的总计问题。