题目要求:
转换字符串——插入字符的个数,如字符串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);
}
}
* 转换字符串——插入字符的个数
* 如,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);
}
}
运行结果如下: