Дан текстовый файл. Вывести в другой файл самые длинные слова текста - C (СИ)
Формулировка задачи:
Дан текстовый файл. Вывести в другой файл самые длинные слова текста
(с учетом знаков препинания, расположенных в начале и в конце слов)
Решение задачи: «Дан текстовый файл. Вывести в другой файл самые длинные слова текста»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #define STRS 50/*размер стринга*/ #define SPACE ' '/*пробел*/ void theLong(char* str){/*функция создающая новый файл+добавляющая в него самые длинные слова*/ FILE* f;/*файл*/ int count = 0, max = 0, i = 0, j = 0;/*посчет длины, макс длинна, индексы*/ char word[STRS] = { '\0' };/*стринг в который мы перепишем слова*/ f = fopen("new.txt", "w");/*создаем файл для в котором будут храниться самые длинные слова*/ if (!f){/*проверяем*/ printf("ERROR!!!\n"); exit(1); } fclose(f);/*закрываем*/ for (i = j; str[i] != '\0'; i++){/*ищет самое длинное слове в стринге*/ if (str[i] == SPACE)/*если есть пробел то идем на следующий индекс*/ continue; count = 0;/*обнуливаем считалку*/ for (j = i; str[j] != SPACE&&str[j] != '\0'; j++){/*пока не дошли до конца слова, или до конца стринга*/ count++;/*продвигаем считалку*/ } if (max < count)/*если есть слово длинее самениваем его размер*/ max = count; i = j; } f = fopen("new.txt", "a");/*открываем созданый ранее файл для редактирования*/ if (!f){ printf("ERROR!!!\n"); exit(1); } j = 0; for (i = j; str[i] != '\0'; i++){/*теперь ищем те самые длинные слова*/ if (str[i] == SPACE) continue; count = 0; for (j = i; str[j] != SPACE&&str[j] != '\0'; j++){/*переписываем первое слово в стринг помощи*/ word[count] = str[j]; count++; } if (max == count)/*если размеры максимальны, то печатаем его в наш файл*/ fprintf(f, "%s ", word);/**/ for (i = 0; word[i] != '\0'; i++)/*и обнуливаем его*/ word[i] = '\0'; i = j; } fclose(f);/*закрываем файл*/ } int main(){ FILE* f;/*открываем файл*/ char str[STRS] = { "\0" };/*создаем стринг*/ f = fopen("help.txt", "r");/*открываем созданный на пк файл для чтения*/ if (!f){/*проверяем*/ printf("ERROR!!!\n"); exit(1); } fgets(str, STRS, f);/*переписываем его содержимое в наш стринг*/ fclose(f);/*закрываем файл*/ theLong(str);/*шлем в функцию*/ return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д