代码对齐(Alignment of Code)

向右看齐 2022-11-30 04:12 272阅读 0赞

输入若干行代码,要求各列单词的左边界对齐且尽量靠左。单词之间至少要空一格。
每个单词不超过80个字符,每行不超过180个字符,一共最多1000行

  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<vector>
  5. #include<sstream>
  6. using namespace std;
  7. vector<string> ans[1005];
  8. string s,temp;
  9. int max_len[1005],columns,rows;
  10. void print(string s,int len)
  11. {
  12. cout<<s;
  13. for(int i=0;i<=len-s.size();i++)
  14. {
  15. printf(" ");
  16. }
  17. }
  18. int main()
  19. {
  20. while(getline(cin,s))
  21. {
  22. stringstream io(s);
  23. while(io>>temp)
  24. {
  25. max_len[columns]=max(max_len[columns],(int)temp.size());
  26. columns++;
  27. ans[rows].push_back(temp);
  28. }
  29. rows++,columns=0;
  30. }
  31. for(int i=0;i<rows;i++)
  32. {
  33. int j=0;
  34. for(int j=0;j<ans[i].size()-1;j++)
  35. {
  36. printf(ans[i][j],max_len[j]);
  37. }
  38. cout<<ans[i][j]<<endl;
  39. }
  40. return 0;
  41. }

发表评论

表情:
评论列表 (有 0 条评论,272人围观)

还没有评论,来说两句吧...

相关阅读