1593 - Alignment of Code

这道题最坑的就是每行的最后不能有空格,而且一旦有了空格就是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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值