#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");
}
输入例如:aabb2222ccc 输出a2b2c3 ,不知道怎么用一次循环就搞定
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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中矩阵文本型数据的总计问题。