Guest User

Untitled

a guest
Aug 5th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class String {
  6. private:
  7.     int len;
  8.     char* str;
  9.     void reassign_variable(int len, char* str) {
  10.         if (this->len != 0) {
  11.             delete [] this->str;
  12.         }
  13.         this->len = len;
  14.         this->str = new char[this->len];
  15.         for (int i = 0; i < this->len; i++) {
  16.             this->str[i] = str[i];
  17.         }
  18.     }
  19. public:
  20.     String(char* str) {
  21.         len = 0;
  22.         int i = 0;
  23.         while (str[i]!='\0') {
  24.             i++;
  25.         }
  26.         reassign_variable(i+1, str);
  27.     }
  28.     String() {
  29.         len = 0;
  30.         str = nullptr;
  31.     }
  32.     String& operator=(char* str) {
  33.         int i = 0;
  34.         while (str[i]!='\0') {
  35.             i++;
  36.         }
  37.         reassign_variable(i+1, str);
  38.         return *this;
  39.     }
  40.     String& operator = (String& other) {
  41.         reassign_variable(other.lenght()+1, other.get_s());
  42.         return *this;
  43.     }
  44.  
  45.     String operator + (String& other) {
  46.         String newStr;
  47.         int summlen = this->len-1 + other.len;
  48.         newStr.len = summlen;
  49.         newStr.str = new char[summlen];
  50.         for (int i = 0; i < this->len-1; i++) {
  51.             newStr.str[i] = this->str[i];
  52.         }
  53.         for (int i = this->len-1; i < summlen; i++) {
  54.             newStr.str[i] = other.str[i-(len-1)];
  55.         }
  56.         return newStr.get_s();
  57.     }
  58.  
  59.     char* get_s() {
  60.         return this->str;
  61.     }
  62.  
  63.     int lenght() {
  64.         return this->len-1;
  65.     }
  66.     ~String() {
  67.         if (this->len!=0) {
  68.             delete [] str;
  69.         }
  70.     }
  71. };
  72.  
  73. int main() {
  74.     String a;
  75.     String b;
  76.     a = "awd";
  77.     b = "bce";
  78.     String c;
  79.     c = a+b;
  80.     cout << c.get_s();
  81.     return 0;
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment