Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define _USE_MATH_DEFINES
- #include <math.h>
- #include <string>
- #include <sstream>
- using namespace std;
- int searching_of_repeats(string);
- void entering(int, string);
- int ff(int, string);
- int main()
- {
- // using namespace std;
- setlocale(LC_ALL, "Russian");
- long n;
- char ex = 'n';
- do {
- cout << "Введите номер задания: " << endl;
- char task;
- //cin.ignore(100, '\n');
- cin >> task;
- cin.ignore(100, '\n');
- cin.clear();
- switch (task)
- {
- case '1': {
- /*26.Дан текст, слова в котором разделены одинарным символом пробела, и
- какая - то буква.Вывести все слова, в которых встречается эта буква.*/
- string text, word;
- string symbol;
- cout << "Enter symbol: " << endl;
- getline(cin, symbol);
- symbol.resize(1);//чтобы было больше функций
- cout << "Enter text: " << endl;
- getline(cin, text);
- stringstream words(text);
- while (words >> word)
- {
- bool flag = 0;
- for (int i = 0; i < word.length(); i++)//еще больше функций!!!!!!!!!
- {
- if (word.find(symbol) != string::npos)
- {
- flag = 1;;
- }
- }
- if (flag)
- {
- cout << word << endl;
- }
- }
- break;
- }
- case '2': {
- /*Дан текст на английском языке, слова в котором разделены одинарным
- символом пробела. Определить слово (слова) с максимальным числом
- повторяющихся букв*/
- cout << "Enter text: " << endl;
- string text, rez;
- getline(cin, text);
- int maxs = searching_of_repeats(text);
- entering(maxs, text);
- break;
- }
- default: {cout << "Нет такой задачи.\n"; } break;
- }
- cout << "Если вы хотите выйти, нажмите \'y\', в противном случае-любую другую клавишу" << endl;
- // cin.ignore(100, '\n');
- cin >> ex;
- } while (ex != 'y');
- return 0;
- }
- int searching_of_repeats(string str)
- {
- string word;
- int maxrep = 0;
- stringstream ss(str);
- while (ss >> word)
- {
- int maxs1 = ff(maxrep, word);
- if (maxs1 > maxrep)
- {
- maxrep = maxs1;
- }
- }
- return maxrep;
- ss.str("");
- }
- void entering(int maxrep, string text1)
- {
- string rez;
- string word;
- stringstream s(text1);
- while (s >> word)
- {
- int maxs1 = ff(maxrep, word);
- if (maxs1 > maxrep)
- {
- maxrep = maxs1;
- }
- if (maxs1 == maxrep)
- {
- rez += word;
- rez += " ";
- }
- }
- cout << rez;
- s.str("");
- }
- int ff(int maxrep1, string word1)
- {
- int maxs1 = 0;
- int* mas = new int[word1.length()];
- for (int l = 0; l < word1.length(); l++)
- {
- mas[l] = 0;
- }
- for (int t = 0; t < word1.length(); t++)
- {
- if (word1.find(word1[t]) <= t)
- {
- mas[word1.find_first_of(word1[t])]++;
- }
- }
- for (int l = 0; l < word1.length(); l++)
- {
- if (mas[l] > maxs1)
- {
- maxs1 = mas[l];
- }
- }
- delete[] mas;
- return maxs1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement