Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2016, 17:34   #1
Narsky
Форумчанин
 
Регистрация: 21.06.2016
Сообщений: 109
По умолчанию Динамическая память и бесконечная строка, С++

Задача:
Цитата:
Удаление символов Написать функцию, обеспечивающую ввод с клавиатуры строки неограниченной длины без редактирования. Написать функцию, которая удаляет символы, стоящие между двумя определенными символами. Символ вводится пользователем.

Примечание: В каждой задаче должна быть реализована проверка на целостность кучи. При работе со строками учитывать символ конца строки (байт с нулевым значением).
Заполнение элементов массива (там, где это требуется) должно быть реализовано в виде отдельной функции. В этой функции запрашивается количество элементов массива, затем пользователю предоставляется выбор – либо вводить массив с клавиатуры, либо заполнить его автоматически (случайными числами).
В случаях, когда функция сама формирует массив, она должна посредством своих аргументов (объявленных как указатели) передать в вызывающую программу новый массив и число его элементов. Возвращаемое функцией число должно означать код ошибки (например, 0 – нет ошибки, ненулевое число – код конкретной ошибки). Во всех задачах, где необходимо вводить строки (не)ограниченной длины без редактирования, следует иметь в виду, что для хранения строки необходимо использовать динамическую память. Размер блока, выделенного под строку, увеличивается при вводе очередного символа. Строка генерируется внутри функции ввода. Функция возвращает указатель на начало строки. Ввод строки завершается при нажатии клавиши Enter, код Enter в строке не сохраняется.
Если на каком-либо этапе память выделить невозможно, то необходимо освободить всю выделенную ранее память и завершить программу. Особое внимание уделить обработке различных ошибок – при их возникновении необходимо освобождать все ставшие ненужными ресурсы. При формировании нового массива можно реализовать любой из следующих алгоритмов, либо разработать свой: 1) создать новый массив и перенести в него нужные элементы. 2) скопировать исходный массив и поэлементно его изменять (например, переставлять элементы).
Часть кода:
Цитата:
#include <iostream>
#include <string>
using namespace std;

void del(string str)
{
}

int main()
{
setlocale(LC_ALL, "Russian");
char a, b;
cout << "Введите 1 символ" << endl;
cin >> a;
cout << "Введите 2 символ" << endl;
cin >> b;
cout << "Введите текст" << endl;
string str;
getline(cin, str);
cout << "Результат: " << str << endl;

del(str);
system("pause");
return 0;
}
Нужна помощь в написании функции, которая будет удалять символы в строке между двумя определенными символами. Да и проверить уже написанный код не помешало бы
Narsky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая память RAFA91 Общие вопросы C/C++ 23 24.09.2015 13:31
Динамическая память С++ onewho Помощь студентам 4 04.02.2011 17:27
динамическая память zhenya.ya Помощь студентам 2 24.02.2010 20:58
динамическая память в си Serjuk Помощь студентам 0 27.12.2009 13:54
Динамическая память. Пaвeл Помощь студентам 16 31.05.2009 21:16