Дан текстовый файл. Вывести в другой файл самые длинные слова текста - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д