aboutsummaryrefslogtreecommitdiff
path: root/week01/Exercise1.cpp
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-02-27 17:33:06 +0200
committerSyndamia <kamen@syndamia.com>2024-02-27 17:33:06 +0200
commit65010da9ed11920b57e79ff6b197c0c64ceeba69 (patch)
tree7e6cba3ff86e1cd41adaea943858a464febb3d5e /week01/Exercise1.cpp
parentf366548e7cac90d44507c37975106a06fdd11bda (diff)
downloadoop-2023-solutions-65010da9ed11920b57e79ff6b197c0c64ceeba69.tar
oop-2023-solutions-65010da9ed11920b57e79ff6b197c0c64ceeba69.tar.gz
oop-2023-solutions-65010da9ed11920b57e79ff6b197c0c64ceeba69.zip
[w1] Added exercises and solutions to ex1 and 2
Diffstat (limited to 'week01/Exercise1.cpp')
-rw-r--r--week01/Exercise1.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/week01/Exercise1.cpp b/week01/Exercise1.cpp
new file mode 100644
index 0000000..5c4df9d
--- /dev/null
+++ b/week01/Exercise1.cpp
@@ -0,0 +1,38 @@
+#include <iostream>
+
+struct String {
+ char* stringPointer;
+ int stringSize;
+};
+
+String* concatString(const String& str1, const String& str2) {
+ String* biggerString = new String;
+ biggerString->stringSize = str1.stringSize + str2.stringSize;
+ biggerString->stringPointer = new char[biggerString->stringSize + 1]; // + 1 за да запазим и терминиращата нула
+
+ for (int i = 0; i < str1.stringSize; i++) {
+ biggerString->stringPointer[i] = str1.stringPointer[i];
+ }
+
+ for (int i = 0; i < str2.stringSize; i++) {
+ biggerString->stringPointer[str1.stringSize + i] = str2.stringPointer[i];
+ }
+
+ biggerString->stringPointer[biggerString->stringSize] = '\0';
+ return biggerString;
+}
+
+int main() {
+ char str1Holder[] = "Hello";
+ char str2Holder[] = "World";
+
+ String str1 = { str1Holder, 5 };
+ String str2 = { str2Holder, 5 };
+
+ String* conc = concatString(str1, str2);
+
+ std::cout << conc << std::endl;
+
+ delete[] conc->stringPointer;
+ delete conc;
+}