5-1 ejercer la alineación uva593 Código (la última palabra sin espacios!)

Esta pregunta es para abrir una cadena en nada de
la forma en que está alineado, antena abierta, excepto la longitud de palabra de cada columna máxima
de salida con función automática llena espacios (escrito a mano ah) en gran medida Liu ha utilizado el silencio para recordar -
mientras las filas de caos que decir
sobre el código

#include <bits/stdc++.h>
using namespace std;
string str[1005][200];
int    len[1005][200];
int maxn[200],chang[1005];
void print(string s, int n, char c) //自动补空格 
{
	int l = s.size();
	for (int i = 0; i < n ;i++)
	{
		if(i < l) cout<<s[i];
		else cout<<c;
	}
}
int main()
{
	string s;
	int n = 0, MA = 0;
	while(getline(cin,s))
	{
		int z = 0;
		stringstream ss(s);  // 读每行单词专用流 
		while(ss >> str[n][z])
		{
			len[n][z] = str[n][z].size(); //单词长度	
			z++;
		}
		chang[n++] = z;  //单词个数 
		MA = max(z,MA);
	}
	for (int i = 0; i < MA; i++) //最多的单词个数
	{
		for (int j = 0; j < n; j++)
		{
			if(i >= chang[j]) continue; // 超过其行的单词个数就算了 
			else maxn[i] = max(maxn[i],len[j][i]); 
		}
	} 
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < chang[i]; j++)
		{
			if(j) printf(" ");
			if(j != chang[i]-1) print(str[i][j],maxn[j],' ');
			else cout<<str[i][j];
		}
		printf("\n");
	} 
	  return 0;
} 
Publicado 55 artículos originales · ganado elogios 1 · vistas 2661

Supongo que te gusta

Origin blog.csdn.net/qq_37548017/article/details/100053031
Recomendado
Clasificación