UVa——1593Alignment of Code(string重定向+vector数组)
2016-03-03 08:35
399 查看
UVA - 1593
Alignment of Code
Submit
Status
Description
题意:输入数行数据,一行数据多个短字符串,输出要按照每列最长的占位进行输出。
下面是具体显示效果(为了看清楚具体输出我把空格换成了"|")
输入:
--------------------------------------------
输出:
--------------------------------------------
代码:
Alignment of Code
Time Limit: 3000MS | Memory Limit: Unknown | 64bit IO Format: %lld & %llu |
Status
Description
题意:输入数行数据,一行数据多个短字符串,输出要按照每列最长的占位进行输出。
下面是具体显示效果(为了看清楚具体输出我把空格换成了"|")
输入:
--------------------------------------------
start: integer; // begins here stop: integer; // ends here s: string; c: char; // temp
输出:
--------------------------------------------
start:|integer;|//|begins|here stop: |integer;|//|ends |here s: |string; c: |char; |//|temp
代码:
#include<iostream> #include<algorithm> #include<string> #include<cmath> #include<cstdio> #include<set> #include<sstream> #include<map> #include<vector> #include<iomanip> using namespace std; static int len[50];//记录每列字符串的最大长度 int main(void) { string s,one; vector<string>list[1001];//每一个vector都是一个数组,类似于可变长的二维数组 vector<string>::iterator it; int hang=0,lie,maxlen=0; while (getline(cin,s)) { lie=0; istringstream sin(s);//重定向 while (sin>>one) { list[hang].push_back(one);//加入到自己所在行 len[lie]=max(len[lie],(int)one.size());//每列的最大长度 lie++;//列数更新 } hang++;//行数更新 } for (int i=0; i<hang; i++) { for (int j=0; j<list[i].size(); j++) { if(j!=list[i].size()-1) cout<<left<<setw(len[j])<<list[i][j]<<" ";//输出占位+一个空格 else cout<<left<<list[i][j]<<endl;//输出占位不加空格 } } return 0; }
相关文章推荐
- 浅谈JAVA设计模式
- linux如何挂载U盘
- Java版本-----商店购物系统
- swift 数据持久化之归档
- 格式工厂 转换格式 mp4 保留视频清晰度 经验之谈
- question_011-JAVA之Collection
- RedHat linux下jdk的安装
- 安卓排除美颜相机等第三方相机直接调用系统相机处理方法
- Data scientist's tool笔记
- 原子操作和线程的并发执行
- USC CSCI 585 Specialization Hierarchy
- 图解:如何在LINUX中安装VM-Tools
- SQL读书笔记(五)
- CAS原理与协议
- TreSet的有序唯一性
- stl.find_if用法总结
- 我的软件工程课目标
- 2016春季学习(1)——递推
- poj1149 最大流好题 难在建图 好题
- 一个基于node与mysql的打卡小应用