Advertisement
ksyshshot

for Karina with love

May 1st, 2024
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void writeTask()
  7. {
  8.     cout << "Данная программа находит количетсво групп 5 по цифр в строке, состоящей из нулей и единиц.\n";
  9. }
  10.  
  11. string inputString()
  12. {
  13.     bool isNotCorrect;
  14.     string str;
  15.     do
  16.     {
  17.         isNotCorrect = false;
  18.         //ввод строки
  19.         cout << "Введите исследуемую строку: ";
  20.         getline(cin, str);
  21.         //длина строки
  22.         int length = str.length();
  23.         //проверка строки на корректный ввод
  24.         int i = 0;
  25.         while ((!isNotCorrect) && (i < length))
  26.         {
  27.             isNotCorrect = !((str[i] == ' ') || (str[i] == '0') || (str[i] == '1'));
  28.             i++;
  29.         }
  30.     } while (isNotCorrect); //повторяем ввод, пока не будет корректной строки
  31.     return str;
  32. }
  33.  
  34. int countOfGroup(string str)
  35. {
  36.     int count = 0;
  37.     int temp = 0;
  38.     str.append(" "); //добавляем в конец строки пробел для алгоритма ниже
  39.     int length = str.length();
  40.     for (int i = 0; i < length; i++) //бегаем по строке в поисках нужных групп
  41.     {
  42.         if (str[i] != ' ')
  43.             temp++; // если это цифра, то прибавляем к текущему количеству цифр в группе
  44.         else
  45.         {
  46.             if (temp == 5) {
  47.                 count++;// если эта группа ровно из 5 цифр
  48.             }
  49.             temp = 0;// в любом случае обнуляем количество цифр в текущей группе, т.к. дошли до пробела => группа закончилась
  50.         }
  51.     }
  52.     return count;
  53. }
  54.  
  55. void outputAnswer(int count)
  56. {
  57.     if (count == 0)
  58.         cout << "В данной строке не найдено подходящих групп из 5 цифр!\n";
  59.     else
  60.         cout << "В данной строке было найдено " << count << " подходящих групп из 5 цифр!\n";
  61.    
  62. }
  63.  
  64. void main()
  65. {
  66.     setlocale(LC_ALL, "Rus");
  67.     writeTask();
  68.     string str = inputString();
  69.     int count = countOfGroup(str);
  70.     outputAnswer(count);
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement