描述:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
main()
{
int as[255][255],to=0,ta=0,ass[255],mo[255][255],i2,wb[255];
int fun(char x);
int width=80;
char align='l',fonts[20],calgphy2[20]={'c','a','l','g','p','h','y','2'},alligator3[20]={'a','l','l','i','g','a','t','o','r','3'};
void parse_para(int argc,char *argv[]) //命令行参数
{
int i;23;
for(int i=1;i<argc;i++)
{
if(argv[i][0]='-')
{
switch(argv[i][1])
{
case 'w':
width=atoi(argv[i+1]);
break;
case 'l':
case 'r':
case 'c':
align=argv[i][1];
break;
case 'f':
strcpy(fonts,argv[i+1]);
break;
}
}
}
}
int fun(char x) //对哪一个字母进行确定
{
if(x<='9'&&x>='0')
{
return (int)x-48+52;
}
else if(x>='a'&&x<='z')
{
return (int)x-97+0;
}
else if(x>='A'&&x<='Z')
{
return (int)x-65+26;
}
else
return 0;
}
int main(int argc,char *argv[]) //主体文件
{
int i,k,j,g,m,n,z,v,b,d,l,q,w=0,usew,i1=0,bull;
char name='A',d3[62][20][30],c,f[255], *sf,*p1,*p2,*p3,wa[255][255];
parse_para(argc,argv);
FILE *fp;
if(strcmp(fonts,calgphy2)==0)
{
char d3[62][20][30];
if((fp=fopen("b.txt","r"))==NULL)
exit(1);
for(k=0;k<62;k++) //从文件里提取
{
for(i=0;i<20;i++)
{
fgets(d3[k][i],30,fp);
int len=strlen(d3[k][i]);
d3[k][i][len-1]='\0';
}
}
for(;;i2++)
{
for(i1=0;i1<=ta;i1++)
{
ass[i1]=0;
}
f[0]='\0';
gets(f);
if(strlen(f)<(width/10))
bull=1;
if(strlen(f)>=(width/10))
bull=0;
if(!memcmp(f,"quit",4))
exit(0);
for(sf=f,ta=0;*sf;)
{
if(*sf!=' ')
{
if((ass[ta])%((width-1)/10)==0&&(ass[ta]!=0))
{
ta++;
}
as[ta][(ass[ta])++]=fun(*sf);
sf++;
}
else if(*sf==' ')
{
while(*sf==' ')
{
sf++;
}
ta++;
}
}
if(bull==1)
{
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<27;d++)
{
if(d3[as[m][b]][0][d]<32)
continue;
else
mo[i2][0]++;
}
}
mo[i2][0]++;
}
for(l=0;l<20;l++)
{
if(align=='c') //居中
{
g=(width-mo[i2][0])/2;
for(z=0;z<g;z++)
{
printf(" ");
}
}
if(align=='r') //右对齐
{
g=(width-mo[i2][0]);
for(z=0;z<g-1;z++)
printf(" ");
}
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<27;d++)
{
if(d3[as[m][b]][l][d]<32)
continue;
else
printf("%c",d3[as[m][b]][l][d]);
}
}
printf(" ");
}
printf("\n");
}
}
if(bull==0)
{
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<27;d++)
{
if(d3[as[m][b]][0][d]<32)
continue;
else
mo[i2][m]++;
}
}
}
for(m=0;m<=ta;m++)
{
for(l=0;l<20;l++)
{
if(align=='c') //居中
{
g=(width-mo[i2][m])/2;
for(z=0;z<g;z++)
{
printf(" ");
}
}
if(align=='r') //右对齐
{
g=(width-mo[i2][m]);
for(z=0;z<g-1;z++)
printf(" ");
}
for(b=0;b<ass[m];b++)
{
for(d=0;d<27;d++)
{
if(d3[as[m][b]][l][d]<32)
continue;
else
printf("%c",d3[as[m][b]][l][d]);
}
}
printf("\n");
}
printf("\n");
}
}
}
}
if(strcmp(fonts,alligator3)==0)
{
char d3[62][7][17];
if((fp=fopen("a.txt","r"))==NULL)
exit(1);
for(k=0;k<62;k++) //从文件里提取
{
for(i=0;i<7;i++)
{
fgets(d3[k][i],17,fp);
int len=strlen(d3[k][i]);
d3[k][i][len-1]='\0';
}
}
for(;;i2++)
{
for(i1=0;i1<=ta;i1++)
{
ass[i1]=0;
}
f[0]='\0';
gets(f);
if(strlen(f)*14<(width))
bull=1;
if(strlen(f)*14>=(width))
bull=0;
if(!memcmp(f,"quit",4))
exit(0);
for(sf=f,ta=0;*sf;)
{
if(*sf!=' ')
{
if((ass[ta])%((width-1)/14)==0&&(ass[ta]!=0))
{
ta++;
}
as[ta][(ass[ta])++]=fun(*sf);
sf++;
}
else if(*sf==' ')
{
while(*sf==' ')
{
sf++;
}
ta++;
}
}
if(bull==1)
{
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<14;d++)
{
if(d3[as[m][b]][0][d]<32)
continue;
else
mo[i2][0]++;
}
}
mo[i2][0]++;
}
for(l=0;l<7;l++)
{
if(align=='c') //居中
{
g=(width-mo[i2][0])/2;
for(z=0;z<g;z++)
{
printf(" ");
}
}
if(align=='r') //右对齐
{
g=(width-mo[i2][0]);
for(z=0;z<g-1;z++)
printf(" ");
}
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<14;d++)
{
if(d3[as[m][b]][l][d]<32)
continue;
else
printf("%c",d3[as[m][b]][l][d]);
}
}
printf(" ");
}
printf("\n");
}
}
if(bull==0)
{
for(m=0;m<=ta;m++)
{
for(b=0;b<ass[m];b++)
{
for(d=0;d<14;d++)
{
if(d3[as[m][b]][0][d]<32)
continue;
else
mo[i2][m]++;
}
}
}
for(m=0;m<=ta;m++)
{
for(l=0;l<7;l++)
{
if(align=='c') //居中
{
g=(width-mo[i2][m])/2;
for(z=0;z<g;z++)
{
printf(" ");
}
}