-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtabular.cpp
More file actions
75 lines (60 loc) · 2.27 KB
/
tabular.cpp
File metadata and controls
75 lines (60 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//
// Created by Mentalselfthink on 23/2/2022.
//
#include <iomanip>
#include <iostream>
#include "tabular.h"
using namespace std;
vector<int> encontrar_tams_cols(const vector<string> & encabezados, const vector<vector<string>> & filas){
vector<int> tams_columnas;
int nuevo_tam{};
for (const auto & enc : encabezados){
nuevo_tam = enc.size();
tams_columnas.push_back(nuevo_tam);
}
for (const auto & fila : filas){
for (int i_col{}; i_col < fila.size(); ++i_col){
if (fila.at(i_col).size() > tams_columnas.at(i_col))
tams_columnas.at(i_col) = fila.at(i_col).size();
}
}
return tams_columnas;
}
string formatear_encabezados(const vector<string> & encabezados, const vector<int> & tams_cols){
string encabezados_completos;
int tam_espacio{};
for (int i_col{}; i_col < encabezados.size(); ++i_col){
tam_espacio = tams_cols.at(i_col) - encabezados.at(i_col).size() + 3;
string espacio(tam_espacio, ' ');
encabezados_completos += espacio + encabezados.at(i_col) + ' ';
}
encabezados_completos += '\n';
for (int i_col{}; i_col < encabezados.size(); ++i_col){
tam_espacio = tams_cols.at(i_col) + 2;
string barra(tam_espacio, '-');
encabezados_completos += " " + barra;
}
encabezados_completos += '\n';
return encabezados_completos;
}
string formatear_filas(const vector<vector<string>> & filas, const vector<int> & tams_cols){
string filas_completas;
int tam_espacio{};
for (auto fila: filas){
for (int i_col{}; i_col < fila.size(); ++i_col){
tam_espacio = tams_cols.at(i_col) - fila.at(i_col).size() + 3;
string espacio(tam_espacio, ' ');
filas_completas += espacio + fila.at(i_col) + ' ';
}
filas_completas += '\n';
}
filas_completas += '\n';
return filas_completas;
}
string tabular_datos(const vector<string> & encabezados, const vector<vector<string>> & filas){
vector<int> tams_cols = encontrar_tams_cols(encabezados, filas);
string encabezados_formados = formatear_encabezados(encabezados, tams_cols);
string cuerpo = formatear_filas(filas, tams_cols);
string tabla_formada = encabezados_formados + cuerpo;
return tabla_formada;
}