题目:字符串bbbbssdf---->b4s2df的转换
注:如果字符串是无序的,可以先排序在统计
实例代码如下:
#include<iostream>
#define MAX_LENGTH 100
using namespace std;
void ConversionCharArray(char *str,char *dest){
int k=0;//目标数组游标
char *pre=str;
char *cur=str+1;
int len=1;//重复字符个数
while(*cur){
if(*pre!=*cur){
dest[k++]=*pre;
dest[k++]=len+'0'; //数字转换为字符存储
pre=cur;//pre位置改变
cur=cur+1;//后移
len=1;//重新置len长度为1
}else{
len++;
cur=cur+1;//后移
}
}
dest[k++]=*pre;//处理最后一种字符
dest[k++]=len+'0';
dest[k]='\0';//目标字符串结尾空字符
}
int main(){
char str[]="bbbbssdf";
char dest[MAX_LENGTH];
ConversionCharArray(str,dest);
int i=0;
char *tra=dest;
while(*tra){
cout<<tra[i];
tra++;
}
cout<<endl;
return 0;
}
输出结果正确:b4s2d1f1