#include<cstring>
#define maxsize 256
typedef struct Jishu{
char zimu;
int count;
}Jishu;
/*int strlen(char a[maxsize])
{
int i=0;
while(a[i]!='\0')
{
++i;
}
return i;
}*/
int main(void)
{
int m=1,j=0;
char a[maxsize];
gets(a);
Jishu jishu[255];
jishu[0].zimu=a[0];
jishu[0].count=1;
for(int i=1;i<(int)strlen(a);++i)
{
if(a[i]==jishu[j].zimu)
jishu[j].count++;
else
{
++j;
jishu[j].zimu=0;//結構體定義的時候不會分配空間,所以必須在使用前賦值。
jishu[j].count=0;
jishu[j].zimu=a[i];
jishu[j].count++;
m++;
}
}
for(int k=0;k<m;++k)
{
if(jishu[k].count==1)
printf("%c",jishu[k].zimu);
else
printf("%d%c",jishu[k].count,jishu[k].zimu);
}
putchar('\n');
return 0;
}
數據結構上可以采用動態分配的鏈表。