#include <stdio.h>
#include <string.h>
//字符串压缩
void CompressStr(const char *SrcStr, char *DstStr)
{
int i = 0, j = 0, count;
while(SrcStr[i] != '\0')
{
DstStr[j] = SrcStr[i++];
count = 1;
while(DstStr[j] == SrcStr[i])
{
++count;
++i;
}
if(count > 1)
DstStr[++j] = count + '0';
++j;
}
DstStr[j] = '\0';
}
//计算字符串字符重复的最大次数
int count(const char* ch,const int i){
static int num=1;
static int tmp=1;
if(ch[i]=='\0'){
return num>tmp ? num:tmp;
}
if(ch[i]==ch[i-1]){
num++;
}
else {
tmp=num>tmp ? num:tmp;
num=1;
}
return count(ch,i+1);
}
int main()
{
char srcStr[100] = "aaaddefffff";
char dstStr[100];
//gets(srcStr);
CompressStr(srcStr, dstStr);
printf("%s %d %c\n", dstStr,sizeof(dstStr),'a'+1);
printf("max=%d\n", count(srcStr,1));
getchar();
return 0;
}
#include <string.h>
//字符串压缩
void CompressStr(const char *SrcStr, char *DstStr)
{
int i = 0, j = 0, count;
while(SrcStr[i] != '\0')
{
DstStr[j] = SrcStr[i++];
count = 1;
while(DstStr[j] == SrcStr[i])
{
++count;
++i;
}
if(count > 1)
DstStr[++j] = count + '0';
++j;
}
DstStr[j] = '\0';
}
//计算字符串字符重复的最大次数
int count(const char* ch,const int i){
static int num=1;
static int tmp=1;
if(ch[i]=='\0'){
return num>tmp ? num:tmp;
}
if(ch[i]==ch[i-1]){
num++;
}
else {
tmp=num>tmp ? num:tmp;
num=1;
}
return count(ch,i+1);
}
int main()
{
char srcStr[100] = "aaaddefffff";
char dstStr[100];
//gets(srcStr);
CompressStr(srcStr, dstStr);
printf("%s %d %c\n", dstStr,sizeof(dstStr),'a'+1);
printf("max=%d\n", count(srcStr,1));
getchar();
return 0;
}