思路:创建一个结构体数组,存储子字符串的字符和长度
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct
{
char x;
int k;
}sub[10010];
int main(int argc, char *argv[]) {
char a[10010];
int n;
int i;
int x;
scanf("%d",&n);
while(n--)
{
x=0;
scanf("%s",a);
sub[x].x=a[0];
sub[x].k=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]==sub[x].x)
{
sub[x].k++;
}
else
{
if(sub[x].k>1)
printf("%d",sub[x].k);
printf("%c",sub[x].x);
x++;
sub[x].x=a[i];
sub[x].k=0;
i--;
}
if(i==strlen(a)-1 && a[i]==sub[x].x)
{
if(sub[x].k>1)
printf("%d",sub[x].k);
printf("%c",sub[x].x);
}
}
printf("\n");
}
return 0;
}