Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // test4.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- class String
- {
- char* str;
- int size;
- public:
- String()
- {
- size = 5;
- str = new char[6];
- str[5] = '\0';
- }
- String(int size)
- {
- this->size = size;
- str = new char[size+1];
- str[size] = '\0';
- }
- String(char string[])
- {
- str = string;
- int i = 0;
- while (str[i] != '\0')
- i++;
- size = i;
- }
- String(const String& copy)
- {
- this->str = copy.str;
- this->size = copy.size;
- }
- String RemoveAll(char ch)
- {
- char *strNew = str;
- int newSize = size;
- for (int i = 0; i < size; i++)
- {
- if (str[i] != ch)
- {
- *strNew++ = str[i];
- }
- else --newSize;
- }
- *strNew = '\0';
- this->size = newSize;
- return String(str);
- }
- bool operator==(String str)
- {
- if (this->size != str.size) return false;
- int i = 0;
- while (this->str[i] != '\0')
- {
- if (this->str[i] != str.str[i]) return false;
- i++;
- }
- return true;
- }
- friend String operator+(const String& str, const char& ch);
- friend String operator+(const char& ch, const String& str);
- friend void print(String str);
- };
- String operator+(const String& str, const char& ch)
- {
- char* strNew = new char[str.size + 1];
- int i = 0;
- while (str.str[i] != '\0')
- {
- strNew[i] = str.str[i];
- i++;
- }
- strNew[i++] = ch;
- strNew[i++] = '\0';
- return String(strNew);
- }
- String operator+(const char& ch, const String& str)
- {
- return str + ch;
- }
- void print(String str)
- {
- printf(str.str);
- }
- int main()
- {
- char strArr[] = "Hello";
- char strArr2[] = "Heo";
- String str(strArr);
- print(str + '\n');
- str.RemoveAll ('l');
- String str2(strArr2);
- if (str == str2)
- {
- printf("Strings \"");
- print(str);
- printf("\" and \"");
- print(str2);
- printf("\" are equal.");
- }
- int smth;
- std::cin >> smth;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement