Код:
#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)