Advertisement
VictoriaLodochkina

lab 4 z2 funct

Mar 17th, 2020
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. using namespace std;
  5. int searching_of_repeats(string);
  6. void entering(int, string);
  7. int main()
  8. {
  9.     cout << "Enter text: " << endl;
  10.     string text, rez;
  11.     getline(cin, text);
  12.     int maxs = searching_of_repeats(text);
  13.     entering(maxs, text);
  14.     return 0;
  15. }
  16.  
  17. int searching_of_repeats(string str)
  18. {
  19.     int j = 0;
  20.     int len = 0;
  21.     int p;
  22.     int nast = 0;
  23.     int maxs1;
  24.     int maxrep = 0;
  25.     for (int i = 1; i < str.size(); i++)
  26.     {
  27.         maxs1 = 0;
  28.         p = str.find_first_of(" ", j);
  29.         if (p == -1)
  30.         {
  31.             break;
  32.         }
  33.         len = p - nast;//длина слова с учетом пробела
  34.         nast = p;
  35.         int nach = p - len; //начало нового слова
  36.         int* mas = new int[len - 1];
  37.         for (int l = 0; l < len - 1; l++)
  38.         {
  39.             mas[l] = 0;
  40.         }
  41.         //  mas[0]++;
  42.         for (int t = 0; t < len; t++)
  43.         {
  44.             if (str.find(str[t]) <= t)
  45.             {
  46.                 mas[str.find_first_of(str[t])]++;
  47.             }
  48.         }
  49.         for (int l = 0; l < len - 1; l++)
  50.         {
  51.             if (mas[l] > maxs1)
  52.             {
  53.                 maxs1 = mas[l];
  54.             }
  55.         }
  56.         if (maxs1 > maxrep)
  57.         {
  58.             maxrep = maxs1;
  59.         }
  60.         delete[] mas;
  61.         j = p + 1;
  62.     }
  63.     cout << maxrep << endl;
  64.     return maxrep;
  65. }
  66.  
  67. void entering(int maxrep, string text1)
  68. {
  69.     string rez;
  70.     string word;
  71.     stringstream s(text1);
  72.     while (s >> word)
  73.     {
  74.         int maxs1 = 0;
  75.         int* mas = new int[word.length()];
  76.         for (int l = 0; l < word.length(); l++)
  77.         {
  78.             mas[l] = 0;
  79.         }
  80.         for (int t = 0; t < word.length(); t++)
  81.         {
  82.             if (word.find(word[t]) <= t)
  83.             {
  84.                 mas[word.find_first_of(word[t])]++;
  85.             }
  86.         }
  87.         for (int l = 0; l < word.length(); l++)
  88.         {
  89.             if (mas[l] > maxs1)
  90.             {
  91.                 maxs1 = mas[l];
  92.             }
  93.         }
  94.         if (maxs1 > maxrep)
  95.         {
  96.             maxrep = maxs1;
  97.         }
  98.         if (maxs1 == maxrep)
  99.         {
  100.             rez += word;
  101.             rez += " ";
  102.         }
  103.         delete[] mas;
  104.     }
  105.     cout << rez;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement