码迷,mamicode.com
首页 > 编程语言 > 详细

算法习题---5.1代码对齐(UVa1593)

时间:2019-09-16 19:23:05      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:name   span   实现   war   while   规范   ios   file   def   

一:题目

将不规范的若干行代码进行对齐。对齐按照最长字符串进行操作。见样例输入

(一)样例输入

??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   
按照每列最长字符串空一格对齐

二:代码实现

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <sstream>

#define MAX_LINES 1000
#define MAX_LEN 180

using namespace std;

int main()
{
    FILE* fp = freopen("data5_1_h.in", "r", stdin);
    freopen("data5_1_h.out", "w", stdout);
    //收集代码信息
    int n = 0;
    string code,single_c;
    vector<string> codes[MAX_LINES];
    int code_max_len[MAX_LEN] = { 0 };

    //进行信息获取
    while (!feof(fp))
    {
        getline(cin, code);
        stringstream ss(code);
        int i = 0;

        while (ss>>single_c)
        {
            codes[n].push_back(single_c);
            code_max_len[i] > single_c.length() ? i++ : code_max_len[i++] = single_c.length() + 1;
        }
        n++;
    }

    //进行信息打印
    for (int i = 0; i <= n; i++)
    {
        int j = 0;
        for (vector<string>::iterator it = codes[i].begin(); it != codes[i].end(); it++,j++)
        {
            cout << setw(code_max_len[j])<<setiosflags(ios::left)<< *it;
        }
        cout << endl;
    }
    freopen("CON", "r", stdin);
    freopen("CON", "w", stdout);
    return 0;
}

 

算法习题---5.1代码对齐(UVa1593)

标签:name   span   实现   war   while   规范   ios   file   def   

原文地址:https://www.cnblogs.com/ssyfj/p/11528906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!