Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Работа с библиотекой set C++
СообщениеДобавлено: 23 апр 2018, 00:01 
Не в сети
Начинающий
Зарегистрирован:
02 дек 2017, 17:27
Сообщений: 33
Cпасибо сказано: 8
Спасибо получено:
1 раз в 1 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Я уже совершенно отчаялся.
Мне нужно, чтобы этот код делал вот что: выводил слова, которые встречаются только в повествовательных предложениях, и их количество (текст в инпуте). Что только не поправлял - не получается.
#include <algorithm> 
#include <fstream>
#include <string>
#include <set>
#include <map>
#include <vector>
#include<iterator>
#include <iostream>

using namespace std;

ifstream in("input.txt");
ofstream out("output.txt");

string strtolower(string S) {
for (int i = 0; i < S.length(); i++)
S[i] = tolower(S[i]);
return S;
}

set <string> set_word(string S) {
set <string> set_S;
if (S[S.length() - 1]!= ' ')
S += " ";
while (S != "") {
set_S.insert(strtolower(S.substr(0, S.find(' '))));
S.erase(0, S.find(' ') + 1);
}
return set_S;
}

int main()
{ setlocale(LC_ALL, "russian");
set <string> quest, exc, dot, so, cross, dif;
int k=0;
string text, pr;
getline(in, text);

while (text != "") {
int pos = text.find_first_of("?");
pr = text.substr(0, pos);
so = set_word(pr);
if (text[pos] = '?')
quest.insert(so.begin(), so.end());
if (text[pos] = '.')
dot.insert(so.begin(), so.end());
if (text[pos] = '!')
exc.insert(so.begin(), so.end());
text.erase(0, pos + 1);
}

for (set<string>::iterator it = quest.begin(); it != quest.end(); it++)
{
out << *it << " ";
k++;
}


set_union(exc.begin(), exc.end(), quest.begin(), quest.end(), inserter(cross, cross.begin()));
for (set<string>::iterator it = cross.begin(); it != cross.end(); it++)
{
out << *it << " ";
k++;
}
set_difference(dot.begin(), dot.end(), cross.begin(), cross.end(), inserter(dif, dif.begin()));

for (set<string>::iterator it = dif.begin(); it != dif.end(); it++)
{
out << *it << " ";
k++;
}

out << endl;

out << "Количество = " << k;

system("pause");
return 0;
}

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ 1 сообщение ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Работа

в форуме Размышления по поводу и без

valentina

11

989

06 апр 2016, 00:29

Работа

в форуме Механика

Vlad136

1

348

20 ноя 2017, 17:27

Работа с матрицами

в форуме MathCad

estet

1

447

05 дек 2015, 17:00

Контрольная работа

в форуме Аналитическая геометрия и Векторная алгебра

Easy4G

1

406

11 ноя 2015, 19:35

Контрольная работа

в форуме Аналитическая геометрия и Векторная алгебра

listopadsem

5

507

28 мар 2016, 14:50

Контрольная работа

в форуме Пределы числовых последовательностей и функций, Исследования функций

anyanebekham

1

296

15 дек 2016, 14:53

Работа с векторами

в форуме Аналитическая геометрия и Векторная алгебра

Destroymen

1

226

22 дек 2016, 10:07

Работа пружины

в форуме Интегральное исчисление

Ryslannn

16

476

12 апр 2017, 14:07

Самостоятельная работа

в форуме Дискретная математика, Теория множеств и Логика

Abduhalim

1

277

05 сен 2017, 18:01

Работа с пределами

в форуме Пределы числовых последовательностей и функций, Исследования функций

New_int

4

351

31 окт 2015, 12:28


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved