jaffarCommon
Loading...
Searching...
No Matches
string.hpp
Go to the documentation of this file.
1#pragma once
2
8#include <algorithm>
9#include <sstream>
10#include <stdarg.h>
11#include <stdint.h>
12#include <stdio.h>
13#include <string>
14#include <vector>
15
16namespace jaffarCommon
17{
18
19namespace string
20{
21
31template <typename Out>
32__JAFFAR_COMMON__INLINE__ void split(const std::string& s, char delim, Out result)
33{
34 std::istringstream iss(s);
35 std::string item;
36 while (std::getline(iss, item, delim)) { *result++ = item; }
37}
38
46__JAFFAR_COMMON__INLINE__ std::vector<std::string> split(const std::string& s, char delim)
47{
48 std::string newString = s;
49 std::replace(newString.begin(), newString.end(), '\n', delim);
50 std::vector<std::string> elems;
51 split(newString, delim, std::back_inserter(elems));
52 return elems;
53}
54
62__JAFFAR_COMMON__INLINE__ std::string formatString(const char* format, ...)
63{
64 char* outstr = 0;
65 va_list ap;
66 va_start(ap, format);
67 int ret = vsnprintf(nullptr, 0, format, ap);
68 va_end(ap);
69 if (ret < 0) return "";
70
71 outstr = (char*)malloc(ret + 1);
72 if (outstr == nullptr) return "";
73
74 va_start(ap, format);
75 ret = vsnprintf(outstr, ret + 1, format, ap);
76 va_end(ap);
77 if (ret < 0)
78 {
79 free(outstr);
80 return "";
81 }
82
83 std::string outString = outstr;
84 free(outstr);
85 return outString;
86}
87
95__JAFFAR_COMMON__INLINE__ std::string dumpBinary(const void* data, const size_t size)
96{
97 auto input = (uint8_t*)data;
98 std::string output;
99 for (size_t i = 0; i < size; i++)
100 {
101 char substr[16];
102 sprintf(substr, "%02X", input[i]);
103 output += std::string(substr);
104 }
105
106 return output;
107}
108
109} // namespace string
110
111} // namespace jaffarCommon
__JAFFAR_COMMON__INLINE__ std::string formatString(const char *format,...)
Definition string.hpp:62
__JAFFAR_COMMON__INLINE__ std::string dumpBinary(const void *data, const size_t size)
Definition string.hpp:95
__JAFFAR_COMMON__INLINE__ void split(const std::string &s, char delim, Out result)
Definition string.hpp:32