题目大意:给一段文本,将其居中。当不能恰好居中时,先靠左居中,下一行靠右居中。
#include<bits/stdc++.h>
using namespace std;
char s[1001][1005];
int len;
int main()
{
int cnt=0,i,j;
while(fgets(s[cnt],sizeof(s[cnt]),stdin))
{
int l=strlen(s[cnt])-1;
len=max(len,l);
s[cnt][l]='\0';
++cnt;
}
for(i=0;i<len+2;++i) printf("*");
puts("");
bool flag=1;
for(i=0;i<cnt;++i)
{
printf("*");
int l=strlen(s[i]);
int t=len-l;
if(t&1)
if(!flag) printf(" ");
for(j=1;j<=t/2;++j) printf(" ");
printf("%s",s[i]);
for(j=1;j<=t/2;++j) printf(" ");
if(t&1)
{
if(flag) printf(" ");
flag=!flag;
}
printf("*");
puts("");
}
for(i=0;i<len+2;++i) printf("*");
puts("");
return 0;
}