5-1
代码参考自
https://blog.csdn.net/zxiaopp/article/details/47356161
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> line[1010];//每一个vector表示每一行
int wordsize[200];//存放每列word的长度最大值
int main()
{
string str;
int cnt = 0;
while(getline(cin, str))
{
string temp;
stringstream ss(str);
int num = 0;
while(ss >> temp)
{
int len = temp.length();
wordsize[num] = max(len, wordsize[num]);
line[cnt].push_back(temp);
++num;
}
++cnt;
}
for(int i = 0; i < cnt; ++i)
{
for(int j = 0; j < line[i].size(); ++j)
{
cout << line[i][j];
if(j != line[i].size()-1)
{
for(int k = line[i][j].size(); k < wordsize[j]; ++k)
{
cout << " ";
}
cout << " ";
}
}
cout << endl;
}
return 0;
}
注意最后的cout << " ";是因为记录的只是最长单词的长度,所以要在输出一个空格,否则每行最长的单词后将无空格。
主要是为了考察c++stl的熟练度,自己对这个还是不够熟练,要多加训练。