LeJerry

lab 6, v3, n1 (online comp)

Oct 27th, 2021 (edited)
165
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //#define _CRT_SECURE_NO_WARNINGS
  2. //#include <iostream>
  3. #include <string.h>
  4. //#include <windows.h>
  5.  
  6. //Алфавит цифр
  7. char alph[] = "1234567890";
  8.  
  9. //Функция для подсчета цифр в "слове"
  10. int countnum(char* word)
  11. {
  12.     int c = 0, maxc = 0;
  13.  
  14.     if (word == NULL)
  15.         return 0;   //Если слова нет
  16.  
  17.     //Считаем цифры подряд, записываем количество в c
  18.     for (int i = 0; i < strlen(word); i++)
  19.     {
  20.         if (strchr(alph, word[i]) == NULL)  //Если нашли не цифру
  21.         {
  22.             //Обнуляем c и передаём максимальное значение в maxc
  23.             if (c > maxc)
  24.                 maxc = c;
  25.             c = 0;
  26.         }
  27.         else        //Если нашли цифру
  28.             c++;
  29.     }
  30.  
  31.     //Передаём максимальное значение в maxc
  32.     if (c > maxc)
  33.         maxc = c;
  34.     //Возвращаем максимальное найденное количество подряд идущих цифр в данном слове
  35.     return maxc;
  36. }
  37.  
  38. int main(void)
  39. {
  40.     //Кириллица в консоли
  41. //  SetConsoleCP(1251);
  42. //  SetConsoleOutputCP(1251);
  43.     //Алфавит знаков препинания
  44.     char sep_signs[] = " ,.!?\n";
  45.     //Переменная для хранения слова
  46.     char* token = NULL;
  47.     int maxnum = 0, num;
  48.  
  49.     printf("Введите строку:\n");
  50.     char line[80];
  51.     gets(line);
  52.  
  53.     token = strtok(line, sep_signs); //Ищем первое слово в тексте
  54.     //Берём его количество цифр как начальное максимальное
  55.     maxnum = countnum(token);
  56.     while (token != NULL) {
  57.         token = strtok(NULL, sep_signs); //Ищем следующее слово в тексте
  58.         num = countnum(token);  //Находим максимальное количество цифр подряд
  59.         if (num > maxnum)   //Если оно больше чем наше то перезаписываем
  60.             maxnum = num;
  61.     }
  62.  
  63.     printf("Наибольшее количество подряд идущих цифр: %i\n", maxnum);
  64.     //system("pause");
  65. }
RAW Paste Data