Файл. Найти слова по условию - 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, что означает успешное выполнение программы.