Дан текстовый файл. Вывести в другой файл самые длинные слова текста - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан текстовый файл. Вывести в другой файл самые длинные слова текста (с учетом знаков препинания, расположенных в начале и в конце слов)

Решение задачи: «Дан текстовый файл. Вывести в другой файл самые длинные слова текста»

textual
Листинг программы
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #define STRS 50/*размер стринга*/
  5. #define SPACE ' '/*пробел*/
  6.  
  7. void theLong(char* str){/*функция создающая новый файл+добавляющая в него самые длинные слова*/
  8.     FILE* f;/*файл*/
  9.     int count = 0, max = 0, i = 0, j = 0;/*посчет длины, макс длинна, индексы*/
  10.     char word[STRS] = { '\0' };/*стринг в который мы перепишем слова*/
  11.     f = fopen("new.txt", "w");/*создаем файл для в котором будут храниться самые длинные слова*/
  12.     if (!f){/*проверяем*/
  13.         printf("ERROR!!!\n");
  14.         exit(1);
  15.     }
  16.     fclose(f);/*закрываем*/
  17.     for (i = j; str[i] != '\0'; i++){/*ищет самое длинное слове в стринге*/
  18.         if (str[i] == SPACE)/*если есть пробел то идем на следующий индекс*/
  19.             continue;
  20.         count = 0;/*обнуливаем считалку*/
  21.         for (j = i; str[j] != SPACE&&str[j] != '\0'; j++){/*пока не дошли до конца слова, или до конца стринга*/
  22.             count++;/*продвигаем считалку*/
  23.         }
  24.         if (max < count)/*если есть слово длинее самениваем его размер*/
  25.             max = count;
  26.         i = j;
  27.     }
  28.     f = fopen("new.txt", "a");/*открываем созданый ранее файл для редактирования*/
  29.     if (!f){
  30.         printf("ERROR!!!\n");
  31.         exit(1);
  32.     }
  33.     j = 0;
  34.     for (i = j; str[i] != '\0'; i++){/*теперь ищем те самые длинные слова*/
  35.         if (str[i] == SPACE)
  36.             continue;
  37.         count = 0;
  38.         for (j = i; str[j] != SPACE&&str[j] != '\0'; j++){/*переписываем первое слово в стринг помощи*/
  39.             word[count] = str[j];
  40.             count++;
  41.         }
  42.         if (max == count)/*если размеры максимальны, то печатаем его в наш файл*/
  43.             fprintf(f, "%s ", word);/**/
  44.         for (i = 0; word[i] != '\0'; i++)/*и обнуливаем его*/
  45.             word[i] = '\0';
  46.         i = j;
  47.     }
  48.     fclose(f);/*закрываем файл*/
  49. }
  50.  
  51. int main(){
  52.     FILE* f;/*открываем файл*/
  53.     char str[STRS] = { "\0" };/*создаем стринг*/
  54.     f = fopen("help.txt", "r");/*открываем созданный на пк файл для чтения*/
  55.     if (!f){/*проверяем*/
  56.         printf("ERROR!!!\n");
  57.         exit(1);
  58.     }
  59.     fgets(str, STRS, f);/*переписываем его содержимое в наш стринг*/
  60.     fclose(f);/*закрываем файл*/
  61.     theLong(str);/*шлем в функцию*/
  62.     return 0;
  63. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы