Дан текстовый файл. Вывести первое слово текста наибольшей длины - C (СИ)

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

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

Дан текстовый файл. Вывести первое слово текста наибольшей длины. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки. Помогите пожалуйста

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define FILE_NAME "file.txt"
 
int main(void) {
    char current[BUFSIZ], longest[BUFSIZ];
    size_t maxlen, lastlen;
    FILE * f;
    
    if ( ! ( f = fopen(FILE_NAME, "r") ) ) {
        fprintf(stderr, "Can't open %s\n", FILE_NAME);
        return 1;
    }
    
    maxlen = 0;
    while ( fscanf(f, "%s", current) == 1 ) {
        if ( ( lastlen = strlen(current) ) > maxlen ) {
            strcpy(longest, current);
            maxlen = lastlen;
        }
    }
    
    fclose(f);
    printf("First longest word: %s\n", longest);
    
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Определение имени файла, с которым будет работать программа
  3. Объявление переменных: текущей строки, строки с наибольшей длиной, переменных для хранения размеров этих строк и файла
  4. Проверка открытия файла с помощью функции fopen и вывод сообщения об ошибке в случае неудачи
  5. Установка начального значения максимальной длины строки равным 0
  6. Чтение файла посимвольно с помощью цикла while и функции fscanf, с сохранением каждого слова в текущую строку
  7. В каждой итерации цикла проверка длины текущей строки с помощью функции strlen и сравнение её с текущей максимальной длиной
  8. Если текущая длина строки больше максимальной, то обновление значения максимальной длины и копирование текущей строки в строку с наибольшей длиной
  9. Закрытие файла с помощью функции fclose
  10. Вывод на экран первого слова с наибольшей длиной с помощью функции printf

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


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

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

12   голосов , оценка 4.167 из 5
Похожие ответы