189 8069 5689

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

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

#includestdio.h

创新互联是一家以网络技术公司,为中小企业提供网站维护、网站制作、做网站、网站备案、服务器租用、域名与空间、软件开发、成都小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎联系:13518219792

#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语言字符串如何压缩

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

#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语言串压缩
当前地址:http://jkwzsj.com/article/hgjgoh.html

其他资讯