Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <vector>
  5.  
  6. #define CONSOLE_CHAR_WIDTH 80
  7.  
  8. std::string& center_str(std::string& str, const char ch = ' ')
  9. {
  10.     std::stringstream sstr(str);
  11.     std::string tmpstr;
  12.     std::string::iterator it;
  13.     std::vector<std::string> words;
  14.     int length;
  15.  
  16.     while (std::getline(sstr, tmpstr,'\n'))
  17.     {
  18.         for (it = tmpstr.begin(); it != tmpstr.end(); it++)
  19.         {
  20.             if (*it == '\t')
  21.             {
  22.                 tmpstr.reserve(tmpstr.size() + 4);
  23.                 tmpstr.insert(it+1, 4, ch);
  24.                 tmpstr.erase(it);
  25.             }
  26.         }
  27.         words.push_back(tmpstr);
  28.     }
  29.  
  30.     sstr.clear();
  31.  
  32.     for (auto i : words)
  33.     {
  34.         length = i.length();
  35.         tmpstr = i;
  36.         i.clear();
  37.         i.resize(CONSOLE_CHAR_WIDTH, ch);
  38.         i.replace((CONSOLE_CHAR_WIDTH - length)/2, length, tmpstr);
  39.         sstr << i;
  40.     }
  41.    
  42.     str = sstr.str();
  43.    
  44.     return str;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement