<span style="font-size:18px;">#include<stdio.h>
#include<string.h>
#define M 1000
char codes[8][256];
char readchar()
{
while(1)
{
char ch;
ch=getchar();
if(ch!='\n'&&ch!='\r')
return ch;
}
}
int readcodes()
{
memset(codes,0,sizeof(codes));
int i,j;
char c;
for(i=1;i<8;i++)
{
for(j=0;j<(1<<i)-1;j++)
{
c=getchar();
if(c==EOF) return 0;
if(c=='\n'||c=='\r') return 1;
codes[i][j]=c;
}
}
return 1;
}
int main()
{
// freopen("C:\\Users\\5201\\Desktop\\IN.txt","r",stdin);
// freopen("C:\\Users\\5201\\Desktop\\my_OUT.txt","w",stdout);
while(readcodes()) //输入编码头
{
int i,n,m;
while(1)
{
n=0;
for(i=0;i<3;i++)
n=n*2+readchar()-'0'; //读前三个计算十进制值,n表示长度
if(n==0)
break;
while(1)
{
for(i=0,m=0;i<n;i++)
m=m*2+readchar()-'0'; //读n个,计算十进制值,m表示十进制值
if(m==(1<<n)-1)
break;
printf("%c",codes[n][m]); //输出长度为n,十进制值是m的解码字符
}
}
printf("\n");
getchar(); //读掉最后的换行
}
return 0;
}</span>
信息解码
最新推荐文章于 2022-12-03 11:11:04 发布