Найти самую длинную строку в файле - 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; } }
Объяснение кода листинга программы
- В начале программы открывается файл с помощью функции fopen.
- Затем мы проверяем, достигнут ли конец файла с помощью функции feof.
- Если файл не пуст, то считываем строку с помощью функции fscanf.
- Мы используем функцию strlen для определения длины строки.
- Если длина текущей строки равна переменной i, то мы выводим эту строку с помощью функции printf и прерываем цикл с помощью оператора break.
- Если длина текущей строки не равна переменной i, то мы продолжаем считывать строки из файла.
- Цикл продолжается до тех пор, пока не будет достигнут конец файла.
- Если длина текущей строки больше переменной i, то переменная i обновляется значением длины текущей строки.
- В конце программы мы закрываем файл с помощью функции fclose.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д