Файл. Найти слова по условию - C (СИ)
Формулировка задачи:
Дан символьный файл f. Найти самое длинное слово, содержащее букву хватило ток на это(п.с. - нубас, не работал с файлами)
а
. Если таких слов несколько вывести крайнее, если нет вообще, то сообщить об этом.#include <stdio.h> void main() { FILE *f1; f1= fopen("C:\\text.txt","r"); int n,i; char s[],max; if (f1 == NULL) { cout<<"File not open"; } else { while( !feof(f1) ) { fscanf( f1, "%d", &n ); for }
Решение задачи: «Файл. Найти слова по условию»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define SIZE 256 int main(void) { char word[SIZE], maxWord[SIZE] = ""; FILE *fin = fopen("input.txt", "r"); while (fscanf(fin, "%s", word) != EOF) if (strlen(word) >= strlen(maxWord) && strchr(word, 'a')) strcpy(maxWord, word); if (!strlen(maxWord)) printf("No such\n"); else printf("%s\n", maxWord); fclose(fin); return 0; }
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы найти самое длинное слово в файле input.txt, которое содержит букву 'a'.
- В начале кода подключаются необходимые библиотеки и определяется размер массива для хранения слова (256 символов).
- Затем, в функции main(), создается пустой массив для хранения самого длинного слова и файл, из которого будут считываться слова.
- Далее, в цикле while с помощью функции fscanf() считываются слова из файла до тех пор, пока не будет достигнут конец файла.
- Внутри цикла, с помощью условного оператора if, проверяется, является ли текущее слово самым длинным и содержит ли оно букву 'a'.
- Если текущее слово удовлетворяет условиям, оно копируется в массив для хранения самого длинного слова.
- После цикла, проверяется, было ли найдено самое длинное слово.
- Если самое длинное слово не найдено, выводится сообщение
No such
. - В противном случае, выводится самое длинное слово.
- В конце программы файл закрывается и возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д