Определить в K-ой строке файла самое короткое слово, начинающееся и заканчивающееся с символа C - C (СИ)

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

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

Дано:

в текстовом файле fin.txt находится текст на русском языке. С клавиатуры вводится число K и символ C.

Требуется:

определить в K-ой строке файла fin.txt самое короткое слово, начинающееся и заканчивающееся с символа C и сформировать текстовый файл fout.txt, в который записать это слово и его длину. Помогите пожалуйста, не могу понять, как работать с файлами.

Решение задачи: «Определить в K-ой строке файла самое короткое слово, начинающееся и заканчивающееся с символа C»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main()
{
    int min = 80, len, n = 1, ns = 1, k;
    char  c, word1[20], str[80];
    FILE *fin, *fout;
    printf("Enter string number ");
    scanf("%d", &k);
    printf("Enter desired letter ");
    scanf(" %c", &c);
    fin = fopen("fin.txt", "r");
    fout = fopen("fout.txt", "w");
    while(1){
        fgets(str, 80, fin);
        ++ns;
        if(ns == k +1){
            fprintf(fout, "%s", str);
            break;
        }
    }
    fclose(fin);
    fclose(fout);
    fout = fopen("fout.txt", "r");
    while(n == 1){
        n = fscanf(fout, "%s", str);
        len = strlen(str);
        if(str[0] == c && str[len - 1] == c){
            if(min > len){
                min = len;
                strcpy(word1, str);
            }
        }
    }
    fclose(fout);
    fout = fopen("fout.txt", "w");
    fprintf(fout, "%s %d", word1, min);
    fclose(fout);
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Определяются начальные значения переменных
  3. Пользователю предлагается ввести номер строки и символ
  4. Открываются файлы для чтения и записи
  5. В цикле пока не будет прочитана нужная строка, считываются строки из файла
  6. Если строка соответствует условиям (начинается и заканчивается на введенный символ), то она записывается в файл для вывода и проверяется на минимальную длину
  7. Если найдена более короткая строка, то она становится новой минимальной длиной
  8. Закрываются файлы для чтения и записи
  9. Открывается файл для вывода
  10. В цикле пока не будет прочитана строка, считываются строки из файла для вывода
  11. Если длина строки соответствует минимальной длине, то выводится эта строка
  12. Закрывается файл для вывода
  13. Возвращается 0, чтобы указать, что программа успешно завершилась

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


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

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

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