Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- class String {
- private:
- char* str;
- int size;
- public:
- // Конструктор по умолчанию
- String() : size(80) {
- str = new char[size + 1];
- std::memset(str, '\0', size + 1);
- }
- // Конструктор, позволяющий создавать строку произвольного размера
- explicit String(int s) : size(s) {
- str = new char[size + 1];
- std::memset(str, '\0', size + 1);
- }
- // Конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя
- String(const char* s) : size(std::strlen(s)) {
- str = new char[size + 1];
- std::memcpy(str, s, size + 1);
- }
- // Конструктор копирования
- String(const String& other) : size(other.size) {
- str = new char[size + 1];
- std::memcpy(str, other.str, size + 1);
- }
- // Деструктор
- ~String() {
- delete[] str;
- }
- // Метод для ввода строки с клавиатуры
- void read() {
- std::cin.getline(str, size + 1);
- size = std::strlen(str);
- }
- // Метод для вывода строки на экран
- void print() const {
- std::cout << str << std::endl;
- }
- };
- int main() {
- String s1; // Создание строки длиной 80 символов
- s1.read(); // Ввод строки с клавиатуры
- s1.print(); // Вывод строки на экран
- String s2(50); // Создание строки длиной 50 символов
- String s3("Hello, world!"); // Создание строки и инициализация её значением
- String s4(s3); // Создание копии строки s3
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement