Непрочитано 19.06.2009, 16:24   # 1
Котэ
 
Аватар для Feo
 
Регистрация: 04.04.2009
Адрес: Таганрог
Возраст: 33
Сообщений: 823
Записей в дневнике: 3
Байк: Bionic b5r
Feo вне форума
По умолчанию офф:С++
кто может решить не сложную задачу по С++ плз писать в асю 437637870
Цитата
Непрочитано 19.06.2009, 16:48   # 2
 
Аватар для Driver
 
Регистрация: 31.05.2009
Адрес: Новосибирск
Возраст: 33
Сообщений: 1,226
Байк: Adamant A1 long 06
Отправить сообщение для Driver с помощью ICQ
Driver вне форума
Конкретней. Среда разработки, вкратце задачка, стоимость)
Цитата
Непрочитано 19.06.2009, 16:56   # 3
Котэ
 
Аватар для Feo
 
Регистрация: 04.04.2009
Адрес: Таганрог
Возраст: 33
Сообщений: 823
Записей в дневнике: 3
Байк: Bionic b5r
Feo вне форума
10) Организовать ввод произвольного количества строк односвязный список. Процесс ввода должен прерываться по требованию пользователя. По окончанию процесса запрашивать у пользователя символ и удалять его из всех строк массива. После этого вывести все строки на экран. Реализовать освобождение динамически выделенной памяти по окончанию работы программы.
Из всего этого мне надо только "По окончанию процесса запрашивать у пользователя символ и удалять его из всех строк массива"
Цитата
Непрочитано 19.06.2009, 17:01   # 4
3.2%
 
Аватар для Kефир
 
Регистрация: 01.08.2005
Адрес: Ленинград
Возраст: 38
Сообщений: 7,935
Записей в дневнике: 1
Байк: Старый Притон
Отправить сообщение для Kефир с помощью ICQ
Kефир вне форума
Ну если остальное уже есть - выкладывай код, а мы тебе допишем, скорее всего даже бесплатно
Цитата
Непрочитано 19.06.2009, 17:02   # 5
Котэ
 
Аватар для Feo
 
Регистрация: 04.04.2009
Адрес: Таганрог
Возраст: 33
Сообщений: 823
Записей в дневнике: 3
Байк: Bionic b5r
Feo вне форума
большое спс,ща
Цитата
Непрочитано 19.06.2009, 17:02   # 6
Котэ
 
Аватар для Feo
 
Регистрация: 04.04.2009
Адрес: Таганрог
Возраст: 33
Сообщений: 823
Записей в дневнике: 3
Байк: Bionic b5r
Feo вне форума
Код:
#include <iostream>
#include <windows.h>
#include <cmath> 
using namespace std;

// определение структуры, с помощью которой будет реализовываться 
// список строк
struct StringList
{
	char* pStr; // строка (указатель на неё)
	StringList* pNext; // указатель на следующий элемент списка
};


void main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	
	StringList* pList = NULL;	// указатель на начало списка
	StringList* pCurrentElement = NULL; // указатель на текущий элемент списка

	char c = 'n';
	do
	{
		cout << "Введите строку в список " << endl;
		char* str = new char[100];
		// Ввод строки длиной максимум 99 символов
		_flushall();
		cin.getline(str, 99);
		StringList* pNewElement = new StringList;
		
		// создание нового элемента
		pNewElement->pNext = NULL;
		pNewElement->pStr = str;

		// внесение нового элемента в список
		// Если список ещё не создан... 
		if(pList==NULL)
		{
			// инициализировать указатели на начало списка и на текущий элемент списка
			// указателем на только что созданный элемент
			pList = pNewElement;
			pCurrentElement = pNewElement;
		}
		// в противном случае... 
		else
		{
			// установить вновь созданный элемент следующим
			pCurrentElement->pNext = pNewElement;
			// переместить указатель на текущий элемент на вновь созданный
			pCurrentElement = pNewElement;
		}

		cout << "Вы хотите продолжить ввод строк в список (y,n)? ";
		cin >> c;
	}
	while(c=='y');

	c = 'n';
	do
	{
		char c;
		cout << "Введите символ ";
		cin >> c;

		// инициализировать указатель plst адресом первого элемента
		StringList* plst = pList;
		while(plst!=NULL)
		{
			// Если последний символ строки равен введенному...
			if(*(plst->pStr+strlen(plst->pStr)-1)==c)
			{
				// Вывести эту строку на экран
				cout << plst->pStr << endl;
			}
			// переместить указатель на следующий элемент
			plst = plst->pNext;
		};

		// Запрос продолжения процесса
		cout << "Вы хотите продолжить ввод символов (y,n)? ";
		cin >> c;
	}
	while(c=='y');

	// Освобождение памяти, выделенной под массив
	while(pList!=NULL)
	{
		// сохранить указатель на следующий элемент
		StringList* pnext = pList->pNext;
		// освободить память, выделенную под текущий
		delete pList;
		// установить указатель pList на следующий элемент
		pList = pnext;
	};
}
ура!! есть тег [code]! (Master)
Последний раз редактировалось Master; 19.06.2009 в 20:41.
Цитата
Непрочитано 20.06.2009, 17:47   # 7
 
Регистрация: 08.11.2005
Сообщений: 1,123
Отправить сообщение для mil_alex с помощью ICQ
mil_alex вне форума
фрагмент

Код:
cin >> c; // запрашиваем символ, который удалять
char *found = strchr( plst->pStr, c ); // ищем символ в строке
if (found) memmove( found, found+1, 1+strlen(found+1)); // на место найденного символа в строке копируем, начиная со следующего за ним, остаток строки, учитывая \0 в конце
memmove позволяет копировать перекрывающиеся области памяти

но можно копировать и посимвольно циклом, от найденного и пока строка не кончится
Код:
while (*found)
{
   *found = *(found+1);
   found++;
}
Цитата
Непрочитано 20.06.2009, 18:24   # 8
Котэ
 
Аватар для Feo
 
Регистрация: 04.04.2009
Адрес: Таганрог
Возраст: 33
Сообщений: 823
Записей в дневнике: 3
Байк: Bionic b5r
Feo вне форума
большое спс =* ))))))))))
Цитата
офф:С++ | by Feo
Ответить


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot