c语言的字符串压缩函数 c++字符串压缩算法

C++编写一个字符串压缩函数,使字符串中重复出现的字符压缩为一个,并输出删除字符的个数

#includestdio.h

目前成都创新互联已为上1000+的企业提供了网站建设、域名、虚拟空间、网站托管、企业网站设计、北海网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

int compress(char s[])

{ int i,j,k,n,a[127]= {0};

for(i=0; s[i]; i++)a[s[i]]++;

n=i;

for(i=0; s[i]; i++)

{if(a[s[i]]1)

for(k=i,j=i+1; s[k]; j++)

if(s[i]!=s[j])s[++k]=s[j];

}

return n-i;

}

int main()

{ char s[100];

int i,count;

gets(s);

count=compress(s);

puts(s);

printf("删除字符:%d个\n",count);

return 0;

}

C语言求助:请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

#include stdio.h

void stringZip(const char

*pInputStr, long lInputLen, char *pOutputStr)

{ int n=1;

char c,*p1=pInputStr,*p2=pOutputStr;

while(*p1)

{

c=*(p1++);

while(*p1==c){n++;p1++;}

if(n1)

{

if(n999){*(p2++)=48+n/1000; n/=10;}

if(n99){*(p2++)=48+n/100; n/=10;}

if(n9){*(p2++)=48+n/10; n/=10;}

*(p2++)=48+n;

}

*(p2++)=c;

n=1;

}

*p2='\0';

}

void main()

{ char s1[200],s2[200];

gets(s1);

stringZip(s1,strlen(s1),s2);

puts(s2);

}

c语言字符串如何压缩

话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。

#include iostream

#include string.h

#include stdio.h

using namespace std;

void yasuo(char a[],char b[])

{

int count=1,p=0;

for(int i=0; istrlen(a); i++)

if(a[i]==a[i+1])

count++;

else if(count2)

{

b[p++]=(char)(count+'0');

b[p++]=a[i];

count=1;

}

else if(count==2)

{

b[p++]=a[i];

b[p++]=a[i];

count=1;

}

else

b[p++]=a[i];

}

void printB(char b[])

{

coutbendl;

}

void backB(char b[])

{

for(int i=0; istrlen(b); i++)

if(b[i]='9'b[i]='3')

{

for(int j=0; j(int)(b[i]-'0'); j++)

coutb[i+1];

i++;

}

else

coutb[i];

coutendl;

}

int main()

{

char a[1000]= {0},b[1000]= {0};

gets(a);

yasuo(a,b);

printB(b);

backB(b);

}

用C语言指针实现字符串压缩

#includestdio.h

#define MAX_NUM 32int main()

{ char *p,str[60];

int i,j=0;

static int num[26];

p=(char*)malloc(MAX_NUM*sizeof(char));

gets(str);

for(i=0;str[i];i++)

{ if(str[i]==' ') p[j++]=str[i];

else {

if(num[str[i]-97]==0||num[str[i]-97]==2||num[str[i]-97]==5)

{ p[j++]=str[i]; num[str[i]-97]++;}

else num[str[i]-97]++;

} }

for(i=0;ij;i++)

putchar(p[i]);

getch();

return 0;

}注:输入的为小写字母,而且句子长度不超过60个字符,保存字数不超过32个。。。。。在win_tc中通过……


分享名称:c语言的字符串压缩函数 c++字符串压缩算法
标题路径:http://ybzwz.com/article/ddjgcdg.html