把ToString前面的int给去了,再确认下ToString这个函数是不是定义了(我好像没看见这东西定义了)
Ⅱ c语言编程:字符串压缩
话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。
#include<iostream>
#include<string.h>
#include<stdio.h>
usingnamespacestd;
voidyasuo(chara[],charb[])
{
intcount=1,p=0;
for(inti=0;i<strlen(a);i++)
if(a[i]==a[i+1])
count++;
elseif(count>2)
{
b[p++]=(char)(count+'0');
b[p++]=a[i];
count=1;
}
elseif(count==2)
{
b[p++]=a[i];
b[p++]=a[i];
count=1;
}
else
b[p++]=a[i];
}
voidprintB(charb[])
{
cout<<b<<endl;
}
voidbackB(charb[])
{
for(inti=0;i<strlen(b);i++)
if(b[i]<='9'&&b[i]>='3')
{
for(intj=0;j<(int)(b[i]-'0');j++)
cout<<b[i+1];
i++;
}
else
cout<<b[i];
cout<<endl;
}
intmain()
{
chara[1000]={0},b[1000]={0};
gets(a);
yasuo(a,b);
printB(b);
backB(b);
}
Ⅲ C语言压缩
#include <cstdio>
#include <string.h>
int main()
{
int i,n=0;
char a[105],t='0';
scanf("%s",a);
for(i=0;i<strlen(a);i++)
{
if(a[i]==t)
n++;
else
{
printf("%d ",n);
n=1;
if(t=='0')
t='1';
else
t='0';
}
if(i==strlen(a)-1)
printf("%d",n);
}
return 0;
}
Ⅳ 用C语言如何对文件进行压缩
winrar软件安装后,所在的安装目录下有个rar.exe,开一个命令窗口到该目录下运行rar
/?就能看到用法了,在你的程序里面调用它的相应命令行是最简单的方法,自己编写压缩算法的话,先不谈效率,起码算法就是相当复杂的了
Ⅳ c语言 文本文件压缩
再发次,有80分呢哎
Ⅵ c语言高手进 压缩与解压程序
你可以把AAA替换为A3
char* compress(char str[])
{
char c,*s;
int i,j,k,n;
n=strlen(str);
s=(char*)malloc((n+1)*sizeof(char));
for(i=0;i<=n;i++)
s[i]='\0';
for(i=0;i<n;i++)
{
c=str[i];
for(j=i+1;c==str[j];j++);
s[k++]=c;
if(j-i>1)
s[k++]='0'+j-i;
i=j;
}
return s;
}
char* decompress(char str[])
{
char c,*s,s1[100]='\0';
int i,j,k,n;
n=strlen(str);
s=s1;
for(i=0;i<n;i++)
{
c=str[i];
if(str[i+1]>='2'&&str[i+1]<='9')
{k=str[i+1]-'0';i+=2;}
for(j=0;j<k;j++,s++)*s=c;
i++;
}
s=s1;
return s;
}
上面的代码适用范围有限,文件最好只含有字母,连续重复不能超过9次,请根据需要修改
Ⅶ 如何用C语言实现数据压缩
首先选择一个压缩算法
然后按照算法实现压缩代码,调用接口就可以
常见的 可以使用哈夫曼编码压缩,或者使用开源的压缩代码,比如lzo, gzip, lzma等等。
Ⅷ c语言字符串如何压缩
话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。
#include<iostream>
#include<string.h>
#include<stdio.h>
usingnamespacestd;
voidyasuo(chara[],charb[])
{
intcount=1,p=0;
for(inti=0;i<strlen(a);i++)
if(a[i]==a[i+1])
count++;
elseif(count>2)
{
b[p++]=(char)(count+'0');
b[p++]=a[i];
count=1;
}
elseif(count==2)
{
b[p++]=a[i];
b[p++]=a[i];
count=1;
}
else
b[p++]=a[i];
}
voidprintB(charb[])
{
cout<<b<<endl;
}
voidbackB(charb[])
{
for(inti=0;i<strlen(b);i++)
if(b[i]<='9'&&b[i]>='3')
{
for(intj=0;j<(int)(b[i]-'0');j++)
cout<<b[i+1];
i++;
}
else
cout<<b[i];
cout<<endl;
}
intmain()
{
chara[1000]={0},b[1000]={0};
gets(a);
yasuo(a,b);
printB(b);
backB(b);
}
Ⅸ 用C语言指针实现字符串压缩
#include<stdio.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;i<j;i++)
putchar(p[i]);
getch();
return 0;
}注:输入的为小写字母,而且句子长度不超过60个字符,保存字数不超过32个。。。。。在win_tc中通过……