5#include "../Primitives.hpp"
13 typedef char* iterator;
19 String(std::string str) { data = str; }
21 String(
const char* str) { data = str; }
23 String(
const char* str,
uint32 length) { data = std::string(str, length); }
35 return data.substr(0,
Length);
40 return data.substr(Start,
Length);
43 int16 Find(
String sub) {
size_t pos = data.find(*sub);
return pos == std::string::npos ? -1 : pos; }
47 if (
Length() == width)
return;
51 while (
Length() < width) data += fill;
55 data = data.substr(0, width);
62 while ((pos = data.find(search.data, pos)) != std::string::npos)
64 data.replace(pos, search.
Length(), replace.data);
71 size_t pos = data.find_last_of(*find);
73 if (pos == std::string::npos)
return -1;
80 std::transform(data.begin(), data.end(), data.begin(), tolower);
92 std::transform(data.begin(), data.end(), data.begin(), toupper);
124 return data == other.data;
129 return data < other.data;
133 iterator
begin() {
return &data[0]; }
136 const char*
Data()
const {
return data.c_str(); }
141 std::string data =
"";
159 return std::to_string(value);
165 return std::stoi(value.
Data());
171 return std::stof(value.
Data());
176 int size = std::vsnprintf(
nullptr, 0, format.
Data(), args) + 1;
177 if (size <= 0)
return {};
178 char* buffer = (
char*)malloc(size);
179 std::vsnprintf(buffer, size, format.
Data(), args);
188 va_start(args, format);
T * Data()
Definition Array.hpp:131
uint32 Size()
Definition Array.hpp:77
String(const char *str, uint32 length)
Definition String.hpp:23
iterator end()
Definition String.hpp:134
bool Equals(String other)
Definition String.hpp:122
bool operator<(const String &other) const
Definition String.hpp:127
int16 Find(String sub)
Definition String.hpp:43
int32 FindLastOf(String find)
Definition String.hpp:69
String(char *str)
Definition String.hpp:20
String Upper()
Definition String.hpp:95
void FillToWidth(uint32 width, char fill=' ')
Definition String.hpp:45
String Sub(uint32 Start, uint32 Length)
Definition String.hpp:38
uint32 Length()
Definition String.hpp:25
String()
Definition String.hpp:16
String Lower()
Definition String.hpp:83
String(Array< char > stringArray)
Definition String.hpp:22
void operator+=(String other)
Definition String.hpp:112
void ToUpper()
Definition String.hpp:90
void Erase(uint32 index, uint32 amount=1)
Definition String.hpp:31
String(const String &str)
Definition String.hpp:18
bool Empty()
Definition String.hpp:29
void ToLower()
Definition String.hpp:78
void Resize(uint32 size)
Definition String.hpp:27
String Sub(uint32 Length)
Definition String.hpp:33
const char * Data() const
Definition String.hpp:136
const char * operator*()
Definition String.hpp:138
String(const char *str)
Definition String.hpp:21
String(std::string str)
Definition String.hpp:19
iterator begin()
Definition String.hpp:133
char operator[](int index) const
Definition String.hpp:102
String(String &str)
Definition String.hpp:17
void Replace(String search, String replace)
Definition String.hpp:59
int32_t int32
Definition Primitives.hpp:13
bool operator==(String a, String b)
Definition String.hpp:151
String ToString(T value)
Definition String.hpp:157
String operator+(String a, String b)
Definition String.hpp:144
String FormatStringVA(String format, va_list args)
Definition String.hpp:174
int16_t int16
Definition Primitives.hpp:10
String FormatString(String format,...)
Definition String.hpp:185
uint32_t uint32
Definition Primitives.hpp:12
float ParseString< float >(String value)
Definition String.hpp:169
T ParseString(String value)
Definition String.hpp:163