UVA - 1593

Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu

Submit Status

Description

 

题意:输入数行数据,一行数据多个短字符串,输出要按照每列最长的占位进行输出。

下面是具体显示效果(为了看清楚具体输出我把空格换成了"|")

输入:

--------------------------------------------

  1. start: integer; // begins here
  2. stop: integer; // ends here
  3. s: string;
  4. c: char; // temp

输出:

--------------------------------------------

  1. start:|integer;|//|begins|here
  2. stop: |integer;|//|ends |here
  3. s: |string;
  4. c: |char; |//|temp

代码:

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<string>
  4. #include<cmath>
  5. #include<cstdio>
  6. #include<set>
  7. #include<sstream>
  8. #include<map>
  9. #include<vector>
  10. #include<iomanip>
  11. using namespace std;
  12. static int len[50];//记录每列字符串的最大长度
  13. int main(void)
  14. {
  15. string s,one;
  16. vector<string>list[1001];//每一个vector都是一个数组,类似于可变长的二维数组
  17. vector<string>::iterator it;
  18. int hang=0,lie,maxlen=0;
  19. while (getline(cin,s))
  20. {
  21. lie=0;
  22. istringstream sin(s);//重定向
  23. while (sin>>one)
  24. {
  25. list[hang].push_back(one);//加入到自己所在行
  26. len[lie]=max(len[lie],(int)one.size());//每列的最大长度
  27. lie++;//列数更新
  28. }
  29. hang++;//行数更新
  30. }
  31. for (int i=0; i<hang; i++)
  32. {
  33. for (int j=0; j<list[i].size(); j++)
  34. {
  35. if(j!=list[i].size()-1)
  36. cout<<left<<setw(len[j])<<list[i][j]<<" ";//输出占位+一个空格
  37. else
  38. cout<<left<<list[i][j]<<endl;//输出占位不加空格
  39. }
  40. }
  41. return 0;
  42. }

UVa——1593Alignment of Code(string重定向+vector数组)的更多相关文章

  1. c++中的array数组和vector数组

    我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <a ...

  2. POJ 3096 Surprising Strings(STL map string set vector)

    题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...

  3. HDU3336 Count the string —— KMP next数组

    题目链接:https://vjudge.net/problem/HDU-3336 Count the string Time Limit: 2000/1000 MS (Java/Others)     ...

  4. Swift 中 String 与 CChar 数组的转换

    在现阶段Swift的编码中,我们还是有很多场景需要调用一些C函数.在Swift与C的混编中,经常遇到的一个问题就是需要在两者中互相转换字符串.在C语言中,字符串通常是用一个char数组来表示,在Swi ...

  5. C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器

    课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...

  6. UVA - 1513 Movie collection (树状数组)

    题意:有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟. 分析: 1.数组大小开为100000*2,后1000 ...

  7. vector数组的相关知识

    Vector 类实现了一个动态数组.和 ArrayList 很相似,但是两者是不同的: Vector 是同步访问的. Vector 包含了许多传统的方法,这些方法不属于集合框架. Vector 主要用 ...

  8. PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换

    PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar ...

  9. 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中

    #include<iostream> #include<string> #include<vector> #include<fstream> using ...

随机推荐

  1. [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)

    这题思路就普通的BFS加上一个维度朝向,主要是要注意输入,输出,以及细节的处理 #include<cstdio> #include<cstring> #include<q ...

  2. codeforces Gym 100286H Hell on the Markets

    紫书上面的题,队友做的,WA了freopen..爆了int... UVA 1614 - Hell on the Markets 奇怪的股市(贪心,结论)

  3. [学习笔记] SSD代码笔记 + EifficientNet backbone 练习

    SSD代码笔记 + EifficientNet backbone 练习 ssd代码完全ok了,然后用最近性能和速度都非常牛的Eifficient Net做backbone设计了自己的TinySSD网络 ...

  4. Cenos7—安装

    1. 进入安装界面 2. 选择语言 3. 进行分区 4. 设置root密码

  5. 01_5_删除指定id的单个对象

    01_5_删除指定id的单个对象 1. 配置相应的映射文件内容 <delete id="deleteStudent" parameterClass="int&quo ...

  6. 遍历Map的两种方式

    取出map集合中所有元素的方式一:keySet()方法. 可以将map集合中的键都取出存放到set集合中.对set集合进行迭代.迭代完成,再通过get方法对获取到的键进行值的获取. Set keySe ...

  7. gradle更换国内镜像、配置本地仓库地址

    gradle更换国内镜像,安装包解压后init.d文件夹下面创建init.gradle文件,内容如下 allprojects{ repositories { def REPOSITORY_URL = ...

  8. (66)zabbix导入/导出配置文件

    通过导入/导出zabbix配置文件,我们可以将自己写好的模板等配置在网络上分享,我们也可以导入网络上分享的配置文件 配置文件有两种格式,分为为xml与json,通过zabbix管理界面可以导出xml, ...

  9. vue实现与安卓、IOS交互

    方案背景 IOS用的是jsBridge插件实现调用.传参.回调的 安卓是在window挂载方法和挂载回调的 IOS实现方案 调用原生方法封装如下 function setupWebViewJavasc ...

  10. Linux 用户管理(一)

    一.基础知识介绍 用户 用户组的概念 每个文件和进程,都需要对应一个用户和用户组 linux 系统通过UID和 GID识别用户和组 用户名相当于人名(给人看) UID和GID相当于身份证(系统用的) ...