-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringHelper_V2.h
More file actions
168 lines (142 loc) · 5.65 KB
/
StringHelper_V2.h
File metadata and controls
168 lines (142 loc) · 5.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#pragma once
#include <cstddef>
#include <cstdint>
#include <list>
#include <string>
#include <vector>
class cStringHelper_V2
{
public:
cStringHelper_V2() = delete;
static void ThrowError(const char *error);
static void newChar(unsigned char **buffer, std::size_t bufferSize);
static void newChar(char **buffer, std::size_t bufferSize);
static void delChar(unsigned char **buffer) noexcept;
static void delChar(char **buffer) noexcept;
static void HexToBin(
char **src,
std::size_t *srcSize,
char **dest,
std::size_t *destSize,
bool delSrc = false);
static void BinToHex(
char **src,
std::size_t *srcSize,
char **dest,
std::size_t *destSize,
bool delSrc = false);
[[nodiscard]] static std::string BufferToString(const char *src, std::size_t max);
[[nodiscard]] static std::string IntToHex(std::uint64_t src, std::size_t minLen = 0u);
[[nodiscard]] static std::string LongToString(long src, int base = 10);
[[nodiscard]] static std::string LongToString(
long src,
int base,
std::size_t minLength,
char pad,
bool prefix);
[[nodiscard]] static std::string Int64ToString(std::int64_t src, int base = 10);
[[nodiscard]] static long StrToInt32(std::string source, unsigned short sourceBase);
[[nodiscard]] static std::int64_t StrToInt64(std::string source, unsigned short sourceBase);
static void copyString(char *dest, const char *src, std::size_t max);
static void copyString(char *dest, std::size_t max, const char *src, std::size_t srcLength);
static void appendString(char *dest, const char *src, std::size_t max);
[[nodiscard]] static bool checkBinary(
std::size_t firstSize,
const char *first,
std::size_t secondSize,
const char *second) noexcept;
[[nodiscard]] static bool compareBinary(
std::size_t firstSize,
const char *first,
std::size_t secondSize,
const char *second) noexcept;
[[nodiscard]] static bool findBinary(
std::size_t stringSize,
const char *stringData,
std::size_t searchSize,
const char *searchData,
std::size_t *pos) noexcept;
[[nodiscard]] static bool getBinaryBetween(
const char *src,
std::size_t srcSize,
const char *start,
std::size_t startSize,
unsigned char startCount,
const char *end,
std::size_t endSize,
unsigned char endCount,
char *dest,
std::size_t destCapacity,
std::size_t *destSize);
[[nodiscard]] static bool getStringBetween(
const char *src,
std::size_t srcSize,
const std::string &start,
unsigned char startCount,
const std::string &end,
unsigned char endCount,
std::string *dest,
const std::string &final = "");
[[nodiscard]] static std::size_t getStringCount(
const char *src,
std::size_t srcSize,
const std::string &search);
[[nodiscard]] static bool splitString(
const char *src,
std::size_t srcSize,
const std::string &delimiter,
std::list<std::string> *dest,
bool includeEmpty = true,
const std::string &final = "");
[[nodiscard]] static bool splitString(
const char *src,
std::size_t srcSize,
std::list<std::string> *dest,
char delimiter = ',',
char qualifier = '"',
bool includeEmpty = true);
[[nodiscard]] static bool checkLeading(const std::string &source, const std::string &search) noexcept;
[[nodiscard]] static bool checkMiddle(const std::string &source, const std::string &search) noexcept;
[[nodiscard]] static bool checkTrailing(const std::string &source, const std::string &search) noexcept;
[[nodiscard]] static bool checkFixedLength(std::size_t source, std::size_t check) noexcept;
[[nodiscard]] static bool checkPatternCI(const char *source, const char *search);
[[nodiscard]] static bool checkPattern(const char *source, const char *search);
[[nodiscard]] static bool checkPattern(const char *source, std::size_t sourceSize, const char *search);
[[nodiscard]] static bool checkPatternList(
const char *source,
const char *list,
const char *delimiters = ",;");
[[nodiscard]] static bool checkPatternListLen(
const char *source,
const char *list,
std::size_t minLen = 1u,
const char *delimiters = ",;");
static void trim(std::string &source);
[[nodiscard]] static std::string replaceAll(
const std::string &source,
const std::string &find,
const std::string &replace);
[[nodiscard]] static std::string replaceLeading(
const std::string &source,
const std::string &find,
const std::string &replace);
[[nodiscard]] static std::string replaceMiddle(
const std::string &source,
const std::string &find,
const std::string &replace);
[[nodiscard]] static std::string replaceTrailing(
const std::string &source,
const std::string &find,
const std::string &replace);
[[nodiscard]] static long compareStringNoCase(
const std::string &string1,
const std::string &string2) noexcept;
[[nodiscard]] static std::string doEncrypt(const std::string &orig);
[[nodiscard]] static std::string doDecrypt(const std::string &orig);
[[nodiscard]] static std::string padToString(
const std::string &source,
std::size_t maxSize,
char pad,
bool prefix);
static void split(const std::string &toSplit, char delim, std::vector<std::string> &results);
};