Doxygen Samurai Engine 0.0.1
Doxygen Samurai Engine Documentation
Loading...
Searching...
No Matches
stringManipulation.cpp
Go to the documentation of this file.
2#include <cctype>
3
4namespace samurai
5{
6
7 void removeCharacters(char *dest, const char *source, const char *charsToRemove, size_t destSize)
8 {
9 int write = 0;
10 for (int read = 0; source[read] != 0; read++)
11 {
12 if (findChar(charsToRemove, source[read]))
13 {
14
15 }
16 else
17 {
18 dest[write] = source[read];
19 write++;
20
21 if (write >= destSize) { break; }
22 }
23 }
24 }
25
26 void toLower(char *dest, const char *source, size_t size)
27 {
28 for (int i = 0; i < size; i++)
29 {
30 if (dest[i] == 0) { break; }
31 dest[i] = std::tolower(source[i]);
32 }
33 }
34
35 void toUpper(char *dest, const char *source, size_t size)
36 {
37 for (int i = 0; i < size; i++)
38 {
39 if (dest[i] == 0) { break; }
40 dest[i] = std::toupper(source[i]);
41 }
42 }
43
44 bool findChar(const char *source, char c)
45 {
46 int i = 0;
47 while (source[i] != 0)
48 {
49 if (source[i] == c)
50 {
51 return true;
52 }
53 i++;
54 }
55 return false;
56 }
57
58 size_t strlcpy(char *dst, const char *src, size_t size)
59 {
60
61 for (size_t i = 0; i < size-1; i++)
62 {
63 dst[i] = src[i];
64
65 if (src[i] == '\0') { return i; }
66 }
67
68 dst[size - 1] = '\0';
69
70 return size - 1;
71 }
72
73 size_t strlcpy(char *dst, std::string src, size_t size)
74 {
75 return strlcpy(dst, src.c_str(), size);
76 }
77
78 std::vector<std::string> split(const char *source, char c)
79 {
80
81 std::string s = "";
82 std::vector<std::string> ret;
83
84 for (int i = 0; source[i] != 0; i++)
85 {
86 if (source[i] == c)
87 {
88 if (s != "")
89 {
90 ret.push_back(s);
91 }
92 s = "";
93 }
94 else
95 {
96 s += source[i];
97 }
98 }
99
100 if (s != "")
101 {
102 ret.push_back(s);
103 }
104
105 return ret;
106 }
107
108}
bool findChar(const char *source, char c)
void toLower(char *dest, const char *source, size_t size)
void toUpper(char *dest, const char *source, size_t size)
void removeCharacters(char *dest, const char *source, const char *charsToRemove, size_t destSize)
size_t strlcpy(char *dst, const char *src, size_t size)
std::vector< std::string > split(const char *source, char c)