explode / trim / get_num_length

  1. // -------------------------- utils.cpp -----------------------------//
  2. #include "utils.h"
  3. vector<string> &explode(const string &str, const char delimiter, vector<string> &elements) {
  4.     stringstream ss(str);
  5.     string item;
  6.     while (getline(ss, item, delimiter))
  7.         elements.push_back(item);
  8.     return elements;
  9. }
  10.  
  11. vector<string> explode(const string &str, const char delimiter) {
  12.     vector<string> elements;
  13.     return explode(str, delimiter, elements);
  14. }
  15.  
  16. // -------------------------- utils.h -----------------------------//
  17. #ifndef __UTILS_H
  18. #define __UTILS_H
  19.  
  20. #include <iostream>
  21. #include <stdio.h>
  22. #include <vector>
  23. #include <sstream>
  24. #include <string>
  25. #include <algorithm>
  26.  
  27. using namespace std;
  28. vector<string> &explode(const string &str, const char delimiter, vector<string> &elements);
  29. vector<string> explode(const string &str, const char delimiter);
  30.  
  31. static inline std::string &ltrim(std::string &s) {
  32.     s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
  33.     return s;
  34. }
  35.  
  36. static inline std::string &rtrim(std::string &s) {
  37.     s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
  38.     return s;
  39. }
  40.  
  41. static inline std::string &trim(std::string &s) {
  42.     return ltrim(rtrim(s));
  43. }
  44.  
  45. static inline unsigned long get_num_length(unsigned long num, unsigned long radix) {
  46.     int length = 0;
  47.     while (num) {
  48.         num /= radix;
  49.         length++;
  50.     }
  51.     return length;
  52. }
  53. #endif
Может кому-то приходятся.

Реклама

Мы в соцсетях

tw tg yt gt