Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cmath>
  4. #include<math.h>
  5. #include<string>
  6. #include<set>
  7. #include<vector>
  8. #include<map>
  9. #include<time.h>
  10. #include<stdlib.h>
  11. #include<list>
  12. #include <iterator>
  13.  
  14.  
  15. using namespace std;
  16.  
  17. int main()
  18. {
  19. setlocale(LC_ALL, "RUS");
  20. set <string> s1; // set для хранения слов из вопросительных предложений
  21. set <string> s2; // set для хранения слов из восклицательных предложений
  22. set <string> s3; //set для хранения слов из повествовательных предложений
  23. set <string> s4; // set для хранения разницы
  24. set <string> s5; // set для результата
  25. string vhod;
  26. string helper = "";
  27. cout << "Введите строку" << endl;
  28. getline(cin, vhod);
  29. for (size_t i = 0; i < vhod.length(); i++)
  30. {
  31. helper += vhod[i];
  32. if (vhod[i] == '?') // заполняем set с вопросительными предложениями
  33. {
  34. helper.erase(helper.end() - 1);
  35. s1.insert(helper);
  36. helper = "";
  37. }
  38. if (vhod[i] == '!') // заполняем set с voskl предложениями
  39. {
  40. helper.erase(helper.end() - 1);
  41. s2.insert(helper);
  42. helper = "";
  43. }
  44. if (vhod[i] == '.') // заполняем set с повествовательными предложениями
  45. {
  46. helper.erase(helper.end() - 1);
  47. s3.insert(helper);
  48. helper = "";
  49. }
  50. }
  51. //set<string>::iterator it1 = remove_if(s1.begin(), s1.end(), smb);
  52. //s1.erase(it1, s1.end());
  53. //set<string>::iterator it2 = remove_if(s2.begin(), s2.end(), smb);
  54. //s2.erase(it2, s2.end());
  55. //set<string>::iterator it3 = remove_if(s3.begin(), s3.end(), smb);
  56. //s3.erase(it3, s3.end());
  57.  
  58. set_difference(s2.begin(), s2.end(), s1.begin(), s1.end(), inserter(s4, s4.begin()));
  59. set_intersection(s4.begin(), s4.end(), s3.begin(), s3.end(), inserter(s5, s5.begin()));
  60. cout << "s1(?): ";
  61. for (set<string>::iterator it = s1.begin(); it != s1.end(); it++)
  62. {
  63. cout << *it << " "; // вывод вопросительных предложений
  64. }
  65. cout << endl;
  66. cout << "s2(!): ";
  67. for (set<string>::iterator it = s2.begin(); it != s2.end(); it++)
  68. {
  69. cout << *it << " "; //вывод восклицательных предложений
  70. }
  71. cout << endl;
  72. cout << "s3(.): ";
  73. for (set<string>::iterator it = s3.begin(); it != s3.end(); it++)
  74. {
  75. cout << *it << " "; //вывод повествовательных предложений
  76. }
  77. cout << endl;
  78. cout << endl;
  79. cout << "Result: ";
  80. for (set<string>::iterator it = s5.begin(); it != s5.end(); it++)
  81. {
  82. cout << *it << " "; // вывод конечного результата
  83. }
  84. cout << endl;
  85. cout << endl;
  86. cout << "Colichestvo = " << s5.size();
  87. }
  88. string s;
  89. getline(cin, s);
  90. string probel = " ";
  91. string dot = ".";
  92. string Predl;
  93. set<string> Words;
  94. for (int i = 0; i < s.size(); i++) {
  95. i = s.find_first_of(razdel);
  96. if (s[i] == '.') { // если нашли знак препинания
  97. Predl = s.substr(0,i);
  98. for (int j = 0; j < Predl.size(); j++) {
  99. j = s.find(probel);
  100. string x = Predl.substr(0,j-1);
  101. Words.insert(x);
  102. Predl.erase(0, j);
  103. j = 0;
  104. }
  105. }
  106. else {
  107. s.erase(0, s[i]);
  108. i = 0;
  109. }
  110.  
  111.  
  112. }
  113. for (set<string>::iterator it = Words.begin(); it != Words.end(); it++)//вывод с помощью итератора
  114. cout << *it << " ";
  115. cout << endl;
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement