Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

реализовать класс строка с динамическим кол-вом элементов

55K
05 января 2012 года
TimeTwo
5 / / 29.12.2009
прошу помочь в реализации совсем запутался ...
задание: реализовать класс строка с динамическим кол-вом эел-тов, требования:
1) возврат подстроки (вывести элементы из строки например с 3 по 5)
2) изменить размер строки путем добавления в конец пустых символов
3) вставить подстроку в строку после определенного символа (символ определяется номером)
55K
05 января 2012 года
TimeTwo
5 / / 29.12.2009
как реализовать требования не понимаю ... помогите пожалуйста
Цитата:
#include <iostream.h>
#include <cstring.h>

class String
{
private:
char* S;
size_t len;
public:
String();
String(const char *s);
String(const String &s);
~String(){ delete [] S;}

istream& operator>>(istream&, String&); // Функция реализует ввод объектов класса с клавиатуры
ostream& operator<<(ostream&, const String&); // Функция реализует вывод объектов класса на экран
char& operator[] (int index) const
{
if (index < 0 || index >= len)
{
cout << "Выход за рамки." << endl;
exit(1);
}
return S[index];
}
size_t GetLen() // Функция возвращает длину строки
{
return len;
}
void SubStr (int x, int c) // вывод произвольной подстроки
{
[COLOR="red"] // ????????????[/COLOR]
}
void Rec (int i, char a) // Запись подствроки в строку
{
[COLOR="red"] // ????????????[/COLOR]
}
void Space (int n) // Добавление пустых символов
{
[COLOR="red"]// ????????????[/COLOR]
}
bool Empty ()
{
if (len != 0)
{
cout << "Строка не пустая" << endl;
return true;
}
else
{
cout << "Строка пустая" << endl;
return false;
}
}

};


istream& operator>>(istream& is, String& str)
{
const int N = 65536;
char temp[N] = {0};// Временный массив для многострочного ввода
size_t Length = 0, //длина последней введенной строки,
Total = 0; //общая длина ввода;
do // ввод продолжается до ввода пустой строки
{
is.getline(temp + Total, N - Total); // запрашиваем строку
Length = strlen(temp + Total);// замеряем длину введенной строки
if(Length == 0) // если строка пуста
{
break;
}
Total += Length + 1 ; // увеличиваем общую длину 1 - это \n
temp[Total - 1] = '\n';
} while (Total < N);
temp[Total - 1] = 0; // Убираем последний Enter
str = temp;// вызываем конструктор преобразования и перегруженный оператор присваивания
return is;
}


ostream& operator<<(ostream& os, const String& str)
{
os << str.S; // Вывод строки
return os; // Возврат объекта вывода
}


int main()
{
setlocale (LC_ALL, "Rus");
int UserChoise, n, z;
char x;
String a, b, c;
cout << "Введите строку: ";
cin >> a;
do
{
cout << endl;
cout << " Меню" << endl;
cout << "==========================================" << endl;
cout << " [1] Чтение подстроки" << endl;
cout << " [2] Добавление пустых символов" << endl;
cout << " [3] Вставка подстроки в строку" << endl;
cout << " [4] Выход" << endl;
cout << "==========================================" << endl;
cout << endl;
cout << "Ваш выбор : ";
cin >> UserChoise;
cout << endl;
switch (UserChoise)
{

case 1:
cout << "Введите индекс первого элемента: ";
cin >> z;
cout << "Введите кол-во символов: ";
cin >> n;
c.SubStr(z, n);
cout << endl;
break;
case 2:
cout << "Введите кол-во пустых символов: ";
cin >> n;
c.Space(n);
cout << endl;
break;

case 3:
cout << "Введите индекс элемента после которого осуществлять вставку: ";
cin >> z;
cout << "Введите подстроку: ";
cin >> b;
c.SubStr(z, n);
cout << endl;
break;

case 4:
cout << "ПОКА !!!!" << endl;
break;

default:
cout << endl << "Неправильный выбор! Попробуйте снова." << endl;
}

} while (UserChoise != 4);

return 0;
}

55K
06 января 2012 года
TimeTwo
5 / / 29.12.2009
пожалуйста великие гуру с++ помогите студенту ...
87
06 января 2012 года
Kogrom
2.7K / / 02.02.2008
Для начала нужна реализация конструкторов. SubStr должен возвращать строку типа String, аналогично и Rec должен не символ получать, а ссылку на строку. Для реализации надо почитать о стандартных сишних функциях для строк. Например:
http://www.cplusplus.com/reference/clibrary/cstring/strcpy/
55K
07 января 2012 года
TimeTwo
5 / / 29.12.2009
если кто то может написать эту программу за вознаграждение ... что бы она работала на borland 3.1 напишите мне icq-2267144
55K
09 января 2012 года
TimeTwo
5 / / 29.12.2009
сделано ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог