博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1578
阅读量:6986 次
发布时间:2019-06-27

本文共 3125 字,大约阅读时间需要 10 分钟。

字符串处理麻烦题

View Code
//zoj1702#include 
#include
using namespace std;const int maxlength = 2001, maxl = 100, maxc = 30;string header, nextheader, word[maxl][maxc];int lnum, cnum, csize[maxc];void init(){ string st; int l = 0, c = 0, i; memset(csize, 0, sizeof(csize)); cnum = header.length(); while (1) { getline(cin, nextheader); if (nextheader[0] == '>' || nextheader[0] == '<' || nextheader[0] == '=' || nextheader[0] == '*') break; for (i = 0; i < cnum - 1; i++) { word[l][i] = nextheader.substr(0, nextheader.find("&")); nextheader.erase(0, nextheader.find("&") + 1); if (int(word[l][i].length()) > csize[i]) csize[i] = word[l][i].length(); } word[l][cnum - 1] = nextheader; if (int(word[l][cnum - 1].length()) > csize[cnum - 1]) csize[cnum - 1] = word[l][cnum - 1].length(); l++; } lnum = l;}void printl(int w, string st){ int i, l = w - st.length(); cout << st; for (i = 0; i < l; i++) cout << " ";}void printc(int w, string st){ int i, l = w - st.length(); for (i = 0; i < l / 2; i++) cout << " "; cout << st; for (i = 0; i < l / 2; i++) cout << " "; if (l % 2 != 0) cout << " ";}void printr(int w, string st){ int i, l = w - st.length(); for (i = 0; i < l; i++) cout << " "; cout << st;}void printword(int i, string st){ switch (header[i]) { case '<': printl(csize[i], st); break; case '=': printc(csize[i], st); break; case '>': printr(csize[i], st); break; }}void print(){ int i, j; //first line cout << "@-"; for (i = 0; i < cnum - 1; i++) { for (j = 0; j < csize[i]; j++) cout << "-"; cout << "---"; } for (j = 0; j < csize[cnum - 1]; j++) cout << "-"; cout << "-@"; cout << endl; //second line cout << "|"; for (i = 0; i < cnum; i++) { cout << " "; printword(i, word[0][i]); cout << " |"; } cout << endl; //third line cout << "|-"; for (i = 0; i < cnum - 1; i++) { for (j = 0; j < csize[i]; j++) cout << "-"; cout << "-+-"; } for (j = 0; j < csize[cnum - 1]; j++) cout << "-"; cout << "-|"; cout << endl; //other lines for (j = 1; j < lnum; j++) { cout << "|"; for (i = 0; i < cnum; i++) { cout << " "; printword(i, word[j][i]); cout << " |"; } cout << endl; } //last line cout << "@-"; for (i = 0; i < cnum - 1; i++) { for (j = 0; j < csize[i]; j++) cout << "-"; cout << "---"; } for (j = 0; j < csize[cnum - 1]; j++) cout << "-"; cout << "-@"; cout << endl;}int main(){// freopen("t.txt", "r", stdin);// freopen("y.txt", "w", stdin); getline(cin, header); while (header[0] != '*') { init(); print(); header = nextheader; } return 0;}

 

转载地址:http://yjmpl.baihongyu.com/

你可能感兴趣的文章
优麒麟 16.04.6 LTS 版本发布!
查看>>
Ant Motion 1.7.0 发布,React 框架动效解决方案
查看>>
如何解决不能使用Process的Start方法运行一个程序的问题。
查看>>
centos6 简单编译安装 php5.4
查看>>
阿里云RDS PostgreSQL GPU加速规格(支持GIS时空加速)发布 ...
查看>>
树莓派吃灰记——Flask搭建web服务
查看>>
云计算?雾计算?雾里看花——IIoT
查看>>
Composer在Windows和Linux的安装和使用
查看>>
大部分程序员都在抱怨自己工资低,但是真的工资低吗? ...
查看>>
Spring Cloud服务发现/注册
查看>>
对话阿里巴巴副总裁刘松:工业互联网是高门槛蓝海,未来将走向数字孪生 ...
查看>>
不改一行代码定位线上性能问题,可能吗?
查看>>
ceph设计哲学与一些思考
查看>>
推广订单如何计算返利
查看>>
实例规格 ECS (共享计算型)和 (通用型-原独享)性能上有什么区别?
查看>>
Javascript基础之-强制类型转换(三)
查看>>
高并发下linux ulimit优化
查看>>
Dataworks调度能力升级——分支节点
查看>>
CSS(颜色_字体)
查看>>
Java并发面试,了解这些就不会被坑了
查看>>