题目要求:
转换字符串——插入字符的个数,如字符串aaab,插入字符个数后变为aaa3b1。
代码如下:

/**//************************************************************************
* 转换字符串——插入字符的个数
* 如,aaab,变为aaa3b1
************************************************************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define MAXCOUNT 2*100 //输入的字符串长度不能超过100

char *transformation(char *str)

...{
int len=strlen(str);
char *buf=new char[len+1]; //存放某个字符的个数即该字符后的字符串

char *p=str;
char *q=p+1;
int count=1;
while(*q)

...{
if(*p==*q)

...{
count++;
p++;
q++;
}
else

...{
itoa(count,buf,10);
int nbits=strlen(buf);
strcat(buf,q);
*q=0;
strcat(str,buf);
q+=nbits;
p=q;
q=p+1;
count=1;
}
}
//最后一个相同字符的个数
itoa(count,buf,10);
strcat(str,buf);

delete []buf;
buf=NULL;
return str;
}

//显示菜单
void show_menu()

...{
printf("--------------------------------------------- ");
printf("input command to test the program ");
printf(" i or I : input string to test ");
printf(" q or Q : quit ");
printf("--------------------------------------------- ");
printf("$ input command >");
}

void main()

...{
char sinput[10];
char str[MAXCOUNT];

show_menu();

scanf("%s",sinput);
while(stricmp(sinput,"q")!=0)

...{
if(stricmp(sinput,"i")==0)

...{
printf(" please input an string:");
scanf("%s",&str);
printf(" before transformation: %s ",str);
char *pstr=transformation(str);
printf(" after transformation: %s ",pstr);
}

//输入命令
printf("$ input command >");
scanf("%s",sinput);
}
}
运行结果如下:
