l.Add(inputstr);
} break;
case 2: {
CMyString inputstr;
int number;
cout << "Input string: "; cin >> inputstr;
cout << "Input logical number: "; cin >> number;
l.Insert(inputstr,number);
} break;
case 3: {
int number;
cout << "Input logical number: "; cin >> number;
CMyString *p=l.Delete(number);
delete p;
} break;
case 4: {
l.Sort();
t2=(double)clock();
k=(t2-t1)/CLK_TCK;
cout << "Vremya sortirovki: " << k << "\n";
} break;
case 5: {
CMyString inputstr;
cout << "Input string"; cin >> inputstr;
l.InsertKeepOrder("zzz");
} break;
case 6: {
l.SaveFile("out.txt");
} break;
case 7: {
l.LoadFile("out.txt");
} break;
case 8: {
l.Balancing();
} break;
case 9: {
l.Show();
getch();
} break;
}
}
}
“MYSTRING.CPP”
#include "mystring.h"
#include <string.h>
/******* реализация класса строки *******/
/* конструктор */
CMyString::CMyString(char *str) { /* str - входная строка */
l=strlen(str);
s=new char[l+1];
strcpy(s,str);
}
/* конструктор копирования */
CMyString::CMyString(CMyString &str) {
l=str.l;
s=new char[l+1];
strcpy(s,str.s);
}
/* деструктор */
CMyString::~CMyString() {
delete[] s;
}
/* оператор присваивания */
CMyString &CMyString::operator=(CMyString &str) {
if (s!=NULL) delete[] s; /* осбождение памяти занимаемой старой строкой */
l=str.l;
s=new char[l+1];
strcpy(s,str.s); /* копирование новой строки */
return *this;
}
/* оператор сравнения "больше" */
int CMyString::operator>(CMyString &str) {
return strcmp(s,str.s)>0;
}
/* оператор сравнения "меньше" */
int CMyString::operator<(CMyString &str) {
return strcmp(s,str.s)<0;
}
/* оператор ввода из потока */
istream &operator>>(istream &in, CMyString &str) {
char tmps[1000]; /* 1000 - максимальное значение входной строки */
in >> tmps;
str.l=strlen(tmps);
str.s=new char[str.l+1];
strcpy(str.s,tmps);
return in; /* возвращение измененного потока */
}
/* оператор вывода в поток */
ostream &operator<<(ostream &out, CMyString &two) {
out << two.s;
return out;
}
“MYSTRING.H”
#include <iostream.h>
#include <string.h>
/* класс строки */
class CMyString {
int l; /* длинна строки */
char *s; /* строка */
public:
CMyString() { l=0; s=NULL; }; /* конструктор по умолчанию */
CMyString(char *str);
CMyString(CMyString & str); /* конструктор копирования */
~CMyString();
CMyString &operator=(CMyString &str); /* оператор присваивания */
int operator>(CMyString &str); /* операторы сравнения */
int operator<(CMyString &str);
/* операторы ввода-вывода (работа с потоками) */
friend istream &operator>>(istream &in, CMyString &str);
friend ostream &operator<<(ostream &out, CMyString &two);
};
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.