字符串压缩函数c语言 C语言串压缩

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

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语言指针实现字符串压缩

#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语言求助:请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

#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语言实现字符串的压缩。

/*

原串: 111225555

压缩后: 312245

原串: 333AAAbbbb

压缩后: 333A4b

原串: ASXDCdddddd

压缩后: 1A1S1X1D1C6d

Press any key to continue

*/

#include stdio.h

#include string.h

char *CompressStr(char s[]) {

char t[255];

int i = 0,j,k = 0;

while(s[i]) {

j = i + 1;

while(s[i] == s[j]) ++j;

t[k++] = j - i + '0';

t[k++] = s[i];

i = j;

}

t[k] = '\0';

strcpy(s,t);

return s;

}

int main(void) {

char i,s[][20] = {"111225555","333AAAbbbb","ASXDCdddddd"};

for(i = 0; i  3; ++i) {

printf("原串: %s\n",s[i]);

printf("压缩后: %s\n",CompressStr(s[i]));

}

return 0;

}


分享标题:字符串压缩函数c语言 C语言串压缩
本文URL:http://azwzsj.com/article/doosdcj.html