Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <cstdio>
- using namespace std;
- class CStr
- {
- char *c; // указатель на строку символов
- void cgen(int l) { // метод для генерации случайной строки длины l
- c = new char[l + 1]; // динамическое выделение памяти
- for (int i = 0; i < l; i++) // генерация случайной строки длины l
- c[i] = 'a' + rand() % 26;
- c[l] = 0; // заканчивается нулём, по условию задачи
- }
- public:
- CStr() { // конструктор по умолчанию
- cgen(1 + rand() % 20);
- };
- CStr(char *str) { // конструктор с параметром "строка"
- c = new char[strlen(str) + 1];
- strcpy(c, str);
- }
- CStr(CStr &str) // копирование j,]trnf
- {
- c = new char[strlen(str.c) + 1];
- strcpy(c, str.c);
- }
- CStr(int l) { // конструктор с параметром "длина строки"
- cgen(l);
- }
- // Destructor (освобождение использованных ресурсов объекта)
- ~CStr() {
- if (c) delete[] c;
- }
- CStr& operator=(CStr &obj) // оператор присваивания объекта CStr
- {
- if (this == &obj) return *this;
- if (c) delete[] c;
- c = new char[strlen(obj.c) + 1];
- strcpy(c, obj.c);
- return *this;
- }
- // оператор сравнения
- bool operator>(CStr &b) // перегрузка оператора >
- {
- if (strcmp(c, b.c) == 1) return true;
- return false;
- }
- int slen() { // возврат длины строки
- return strlen(c);
- }
- // дружественный оператор вывода в поток
- friend ostream& operator<<(ostream &st, CStr& ob) // перегрузка оператора <<
- {
- st << ob.c;
- return st;
- };
- };
- class CStrArray {
- private:
- CStr *arr;
- int size;
- public:
- CStrArray(int n) { // конструктор с параметром "длина массива"
- arr = new CStr[n];
- CStr randomValue;
- this->size = n;
- for (int i = 0; i < n; i++) {
- arr[i] = randomValue;
- }
- }
- ~CStrArray() { // деструктор
- delete[] arr;
- }
- CStr operator[] (int index) { // оператор индексации
- return arr[index];
- }
- friend ostream& operator<<(ostream &st, CStr& ob) {
- }
- CStr valueSort() { // сортировка по значению
- }
- CStr lengthSort() { // сортировка по длине
- }
- CStr check() { // проверка упорядоченности масства по содержимому строк
- }
- };
- int main()
- {
- setlocale(LC_ALL, "Russian");
- CStr a, b, asVar1, asVar2, e, f;
- //CStr copyVariable(asVar2); // явный
- CStr copyVariable = asVar2; // неявный
- CStr lenVar(4);
- CStr strVar("hello");
- cout << "Конструктор по умолчанию: " << asVar1 << endl << endl;
- cout << "Конструктор с параметром строка: " << strVar << endl << endl;
- cout << "Конструктор по длине строки: " << lenVar << endl << endl;
- cout << "Копирование: " << copyVariable << " " << asVar2 << endl;
- cout << endl << "Присваивание: " << asVar1 << " " << asVar2 << endl;
- asVar1 = asVar2;
- cout << "Присвоенное значение: " << asVar1 << " " << endl;
- cout << endl << "Сравнение: " << endl;
- cout << a << " " << b << " ";
- if (a > b) {
- cout << "- 1";
- }
- else {
- cout << "- 0";
- }
- cout << endl << endl << "Длина " << asVar2 << endl;
- cout << asVar2.slen() << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement