Дан символьный файл. Найти в нем слова, в которые буква "a" входит не менее 2х раз (без учета регистра) - C (СИ)

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

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

Дан символьный файл. Найти в нем слова в которые буква "a" входит не менее 2х раз ( без учета регистра ): Примечание: здесь для чтения из файла лучше использовать fscanf. (не использовать ф-ии из библиотеки string.h)
и еще подскажите, пожалуйста, как изменить формат файла .*txt на .*dat просто переименовать не получается

Решение задачи: «Дан символьный файл. Найти в нем слова, в которые буква "a" входит не менее 2х раз (без учета регистра)»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.     const char CFile[] = "file.txt";
  5.     int cnt;
  6.     char text[64], * p;
  7.     FILE* f = fopen(CFile, "r");
  8.  
  9.     if (f == NULL) {
  10.         perror(CFile);
  11.         return 1;
  12.     }
  13.  
  14.     while (fscanf(f, "%63s", text) == 1) {
  15.         cnt = 0;
  16.         for (p = text; *p; ++p) {
  17.             if ((*p == 'a') || (*p == 'A')) {
  18.                 cnt++;
  19.             }
  20.         }
  21.         if (1 < cnt) {
  22.             printf("%s : %d\n", text, cnt);
  23.         }
  24.     }
  25.  
  26.     fclose(f);
  27.  
  28.     return 0;
  29. }

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

В этом коде на языке C выполняется поиск слов в текстовом файле, в которых буква a встречается не менее двух раз (без учета регистра).

  1. В начале определяется имя файла, с которым будет работать программа, и сохраняется в константной строке CFile.
  2. Затем объявляются необходимые переменные:
    • cnt - счетчик, который будет отслеживать количество букв a в текущем слове;
    • text - массив символов, в котором будет храниться текущее слово;
    • p - указатель на текущий символ в массиве text;
    • f - указатель на файл, который открывается для чтения.
  3. Если файл не может быть открыт, выводится сообщение об ошибке и возвращается код завершения 1.
  4. В цикле while с помощью функции fscanf считываются слова из файла и сохраняются в массиве text.
  5. Для каждого слова запускается цикл for, который перебирает все символы слова. Если символ равен a или A, увеличивается счетчик cnt.
  6. После проверки всех символов слова, если cnt больше 1, слово выводится на экран.
  7. После окончания чтения файла, функция fclose закрывает файл, а функция fscanf возвращает значение EOF.
  8. Если в цикле while было прочитано хотя бы одно слово, соответствующее условию, программа выводит сообщение об успешном выполнении.
  9. В конце программы возвращается код завершения 0, что означает успешное выполнение.

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


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

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

12   голосов , оценка 3.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы