Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / String / String.cpp
diff options
context:
space:
mode:
Commit26cb9982828a8bf5898127cf0b50eaef499b572b (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 11:42:52 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 11:42:52 +0300
Files9c45f988e39ed222a3c4747e5ed055488bdd97dd /src/Generic/String/String.cpp
FMI-OOP-P1_TicketSystem-26cb9982828a8bf5898127cf0b50eaef499b572b.tar
FMI-OOP-P1_TicketSystem-26cb9982828a8bf5898127cf0b50eaef499b572b.tar.gz
FMI-OOP-P1_TicketSystem-26cb9982828a8bf5898127cf0b50eaef499b572b.zip
Parent1feabb8895e834a2325380719aaf11053959df7a (diff)
Autocommit at 07.05.2022 @ 11:42
1 files changed, 3 insertions, 35 deletions
-rw-r--r--src/Generic/String/String.cpp38
diff --git a/src/Generic/String/String.cpp b/src/Generic/String/String.cpp
index f327795..069a1df 100644
--- a/src/Generic/String/String.cpp
+++ b/src/Generic/String/String.cpp
@@ -3,64 +3,32 @@
/* Private */
-void String::resize() {
- length *= 2;
- char* newStr = new char[length];
- strncpy(newStr, str, count);
- delete[] str;
- str = newStr;
-}
-
void String::free() {
delete[] str;
}
void String::copyFrom(const String& other) {
str = new char[other.length];
- strncpy(str, other.str, other.count);
+ strncpy(str, other.str, other.length);
length = other.length;
- count = other.count;
}
/* Public */
String::String(const char* str) {
- count = length = strlen(str);
+ length = strlen(str);
this->str = new char[length + 1]; // capture terminating zero
- strncpy(this->str, str, count + 1);
+ strncpy(this->str, str, length + 1);
}
const char* String::get_cstr() const {
return str;
}
-unsigned String::get_count() const {
- return count;
-}
-
unsigned String::get_length() const {
return length;
}
-String& String::operator+=(const String& other) {
- char* newStr = new char[length + other.length + 1];
- strncpy(newStr, str, length);
- strncat(newStr, other.str, other.length + 1);
-
- delete[] str;
- str = newStr;
- length += other.length;
-
- return *this;
-}
-
-String& String::operator+=(char other) {
- if (count == length) resize();
-
- str[count++] = other;
- return *this;
-}
-
String::String() : String("") {}
String::String(const String& other) {