压缩文本

嗯~~其实这是那个什么ITAT比赛的第二道题~~第一道在比赛时弄出来了,第二道弄了一半,就回来后当天晚上就编出来了~~不过一直到现在才想起来发出来~~~

 

这个是要弄压缩文本,要求输入aaabb,能输出3a2b,并且把输入文本保存到input.dat,输出文本保存到output.dat~~

#include 
void main()
{
char ch,c;
int i=0,n=1,m=0;
FILE *fp,*fp1;fp=fopen("input.dat","rt");fp1=fopen("output.dat","wt");
ch=fgetc(fp);c=ch;
while(ch!=EOF)
{
ch=fgetc(fp);
if (ch==c) {n++;} else {fprintf(fp1,"%d%c",n,c);m=m+2;i=i+n;n=1;}
c=ch;
}
fclose(fp);fclose(fp1);
printf("压缩比率:%.4fn",1.0*m/i);
}

 

然后在当天晚上又弄出了第二版的,可以转换无、无限大的文本,并且除了中文其他什么都可以转,包括空格回车特殊符号什么的~~~

#include 
void main()
{
char ch,c;
int i=0,n=1,m=0;
FILE *fp,*fp1;fp=fopen("input.dat","rt");fp1=fopen("output.dat","wt");
ch=fgetc(fp);c=ch;
while(ch!=EOF)
{
ch=fgetc(fp);
if (ch==c) {n++;} else {fprintf(fp1,"%d%c",n,c);m=m+2;i=i+n;n=1;}
c=ch;
}
fclose(fp);fclose(fp1);
printf("压缩比率:%.4fn",1.0*m/i);
}

 

嗯~~不过中文的怎么弄呢?~~谁有可以从文本读取中文并输出中文到文本的代码,借来看一看吧~~~

压缩文本》上有1条评论

  1. Pingback引用通告: BZ编程小组 作品 | BZ编程小组

发表评论

电子邮件地址不会被公开。 必填项已用*标注