Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class String {
- private:
- int len;
- char* str;
- void reassign_variable(int len, char* str) {
- if (this->len != 0) {
- delete [] this->str;
- }
- this->len = len;
- this->str = new char[this->len];
- for (int i = 0; i < this->len; i++) {
- this->str[i] = str[i];
- }
- }
- public:
- String(char* str) {
- len = 0;
- int i = 0;
- while (str[i]!='\0') {
- i++;
- }
- reassign_variable(i+1, str);
- }
- String() {
- len = 0;
- str = nullptr;
- }
- String& operator=(char* str) {
- int i = 0;
- while (str[i]!='\0') {
- i++;
- }
- reassign_variable(i+1, str);
- return *this;
- }
- String& operator = (String& other) {
- reassign_variable(other.lenght()+1, other.get_s());
- return *this;
- }
- String operator + (String& other) {
- String newStr;
- int summlen = this->len-1 + other.len;
- newStr.len = summlen;
- newStr.str = new char[summlen];
- for (int i = 0; i < this->len-1; i++) {
- newStr.str[i] = this->str[i];
- }
- for (int i = this->len-1; i < summlen; i++) {
- newStr.str[i] = other.str[i-(len-1)];
- }
- return newStr.get_s();
- }
- char* get_s() {
- return this->str;
- }
- int lenght() {
- return this->len-1;
- }
- ~String() {
- if (this->len!=0) {
- delete [] str;
- }
- }
- };
- int main() {
- String a;
- String b;
- a = "awd";
- b = "bce";
- String c;
- c = a+b;
- cout << c.get_s();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment