Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<cmath>
- #include<math.h>
- #include<string>
- #include<set>
- #include<vector>
- #include<map>
- #include<time.h>
- #include<stdlib.h>
- #include<list>
- #include <iterator>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "RUS");
- set <string> s1; // set для хранения слов из вопросительных предложений
- set <string> s2; // set для хранения слов из восклицательных предложений
- set <string> s3; //set для хранения слов из повествовательных предложений
- set <string> s4; // set для хранения разницы
- set <string> s5; // set для результата
- string vhod;
- string helper = "";
- cout << "Введите строку" << endl;
- getline(cin, vhod);
- for (size_t i = 0; i < vhod.length(); i++)
- {
- helper += vhod[i];
- if (vhod[i] == '?') // заполняем set с вопросительными предложениями
- {
- helper.erase(helper.end() - 1);
- s1.insert(helper);
- helper = "";
- }
- if (vhod[i] == '!') // заполняем set с voskl предложениями
- {
- helper.erase(helper.end() - 1);
- s2.insert(helper);
- helper = "";
- }
- if (vhod[i] == '.') // заполняем set с повествовательными предложениями
- {
- helper.erase(helper.end() - 1);
- s3.insert(helper);
- helper = "";
- }
- }
- //set<string>::iterator it1 = remove_if(s1.begin(), s1.end(), smb);
- //s1.erase(it1, s1.end());
- //set<string>::iterator it2 = remove_if(s2.begin(), s2.end(), smb);
- //s2.erase(it2, s2.end());
- //set<string>::iterator it3 = remove_if(s3.begin(), s3.end(), smb);
- //s3.erase(it3, s3.end());
- set_difference(s2.begin(), s2.end(), s1.begin(), s1.end(), inserter(s4, s4.begin()));
- set_intersection(s4.begin(), s4.end(), s3.begin(), s3.end(), inserter(s5, s5.begin()));
- cout << "s1(?): ";
- for (set<string>::iterator it = s1.begin(); it != s1.end(); it++)
- {
- cout << *it << " "; // вывод вопросительных предложений
- }
- cout << endl;
- cout << "s2(!): ";
- for (set<string>::iterator it = s2.begin(); it != s2.end(); it++)
- {
- cout << *it << " "; //вывод восклицательных предложений
- }
- cout << endl;
- cout << "s3(.): ";
- for (set<string>::iterator it = s3.begin(); it != s3.end(); it++)
- {
- cout << *it << " "; //вывод повествовательных предложений
- }
- cout << endl;
- cout << endl;
- cout << "Result: ";
- for (set<string>::iterator it = s5.begin(); it != s5.end(); it++)
- {
- cout << *it << " "; // вывод конечного результата
- }
- cout << endl;
- cout << endl;
- cout << "Colichestvo = " << s5.size();
- }
- string s;
- getline(cin, s);
- string probel = " ";
- string dot = ".";
- string Predl;
- set<string> Words;
- for (int i = 0; i < s.size(); i++) {
- i = s.find_first_of(razdel);
- if (s[i] == '.') { // если нашли знак препинания
- Predl = s.substr(0,i);
- for (int j = 0; j < Predl.size(); j++) {
- j = s.find(probel);
- string x = Predl.substr(0,j-1);
- Words.insert(x);
- Predl.erase(0, j);
- j = 0;
- }
- }
- else {
- s.erase(0, s[i]);
- i = 0;
- }
- }
- for (set<string>::iterator it = Words.begin(); it != Words.end(); it++)//вывод с помощью итератора
- cout << *it << " ";
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement