这道题最坑的就是每行的最后不能有空格,而且一旦有了空格就是WA。。。
受刘汝佳的启发,研究了一下stringstream,感觉很好用,可以将空格忽略掉然后一部分一部分的传给别的字符串。
#include<iostream>
#include<algorithm>#include<cstdio>
#include<cstring>
#include<sstream>
using namespace std;
int a[200];
string s[1100],s0[1100],buf;
int main(){
char c;
int kase=0,maxn=0,p,q;
memset(a,0,sizeof(a));
while(getline(cin,s0[kase++])){
stringstream ss(s0[kase-1]);
maxn=0;
while(ss>>buf){
if(a[maxn]<buf.size())
a[maxn]=buf.size();
s[kase-1]+=buf;
s[kase-1]+=' ';
maxn++;
}
}
for(int i=0;i<kase-1;i++){
p=0;q=0;
for(int j=0;j<s[i].size()-1;j++){
if(s[i][j]==' '){
for(int n=q+1;n<=a[p]+1;n++)
printf(" ");
q=0;
p++;
}
else{
printf("%c",s[i][j]);
q++;
}
}
printf("\n");
}
return 0;
}