Advertisement
Mafro

Untitled

Nov 29th, 2022
1,024
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. #pragma once
  2. #include <sstream>
  3. #include <string>
  4. #include <vector>
  5.  
  6. namespace gllang
  7. {
  8.     std::string& ltrim(std::string& str, const std::string& chars = "\t\n\v\f\r ")
  9.     {
  10.         str.erase(0, str.find_first_not_of(chars));
  11.         return str;
  12.     }
  13.  
  14.     std::string& rtrim(std::string& str, const std::string& chars = "\t\n\v\f\r ")
  15.     {
  16.         str.erase(str.find_last_not_of(chars) + 1);
  17.         return str;
  18.     }
  19.  
  20.     std::string& trim(std::string& str, const std::string& chars = "\t\n\v\f\r ")
  21.     {
  22.         return ltrim(rtrim(str, chars), chars);
  23.     }
  24.  
  25.     std::string replace(std::string& str, std::string const& find, std::string const& replace_to)
  26.     {
  27.         return str.replace(str.find(find), find.length(), replace_to);
  28.     }
  29.  
  30.     std::vector<std::string> split(std::string const& str, char const& to_split)
  31.     {
  32.         std::istringstream thread_string(str);
  33.         std::string result_string;
  34.         std::vector<std::string> result_split;
  35.  
  36.         while (std::getline(thread_string, result_string, to_split))
  37.             result_split.push_back(result_string);
  38.         return result_split;
  39.     }
  40.  
  41.     std::vector<std::string> space_split(std::string const& str)
  42.     {
  43.         std::istringstream thread_string(str);
  44.         std::string result_string;
  45.         std::vector<std::string> result_split;
  46.  
  47.         while (std::getline(thread_string, result_string, ' '))
  48.             result_split.push_back(result_string);
  49.         return result_split;
  50.     }
  51.  
  52.     std::vector<std::string> remove_emptiness(std::vector<std::string> base)
  53.     {
  54.         for (size_t i = 0; i < base.size() - 1; ++i)
  55.             if (base[i].empty())
  56.                 base.erase(base.begin() + i);
  57.  
  58.         return base;
  59.     }
  60.  
  61.     std::vector<std::string> remove_trim(std::vector<std::string> base)
  62.     {
  63.         for (size_t i = 0; i < base.size() - 1; ++i)
  64.             gllang::trim(base[i]);
  65.  
  66.         return base;
  67.     }
  68.  
  69. } // ngllang
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement