Найти самую длинную строку в файле - C (СИ)

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

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

Собственно прога находит самую длинную строку в файле, но если длинных строк несколько то выводит их все. Мне нужно чтобы выводило только одну.
#include <string.h>
#include <conio.h>
#include <stdio.h>
 
FILE *f;
char s[255];
int i=0;
int main()
{
f=fopen("m.txt","r");
if (( f = fopen( "m.txt", "r" )) == NULL ) {
        fprintf( stderr, "Can't open, exiting...\n" );
        exit( 1 );
    }
while(!feof(f))
 {fscanf(f,"%s",&s);
 if (strlen(s)>i) i=strlen(s); //находим длину самой большой строки
 }
rewind(f);
printf("The longest string:\n");
while(!feof(f))
{fscanf(f,"%s",&s);
 if (strlen(s)==i) printf("%s\n",s);} //если длина строки совпадает с найденной максимальной, то выводим её
fclose(f);
getch();
}

Решение задачи: «Найти самую длинную строку в файле»

textual
Листинг программы
while(!feof(f)){
    fscanf(f,"%s",&s);
    if (strlen(s)==i){
        printf("%s\n",s);
        break;
     }
}

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

  1. В начале программы открывается файл с помощью функции fopen.
  2. Затем мы проверяем, достигнут ли конец файла с помощью функции feof.
  3. Если файл не пуст, то считываем строку с помощью функции fscanf.
  4. Мы используем функцию strlen для определения длины строки.
  5. Если длина текущей строки равна переменной i, то мы выводим эту строку с помощью функции printf и прерываем цикл с помощью оператора break.
  6. Если длина текущей строки не равна переменной i, то мы продолжаем считывать строки из файла.
  7. Цикл продолжается до тех пор, пока не будет достигнут конец файла.
  8. Если длина текущей строки больше переменной i, то переменная i обновляется значением длины текущей строки.
  9. В конце программы мы закрываем файл с помощью функции fclose.

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


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

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

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