Дан символьный файл. Найти в нем слова, в которые буква "a" входит не менее 2х раз (без учета регистра) - C (СИ)
Формулировка задачи:
Дан символьный файл. Найти в нем слова в которые буква "a" входит не менее 2х раз ( без учета регистра ): Примечание: здесь для чтения из файла лучше использовать fscanf. (не использовать ф-ии из библиотеки string.h)
и еще подскажите, пожалуйста, как изменить формат файла .*txt на .*dat
просто переименовать не получается
Решение задачи: «Дан символьный файл. Найти в нем слова, в которые буква "a" входит не менее 2х раз (без учета регистра)»
textual
Листинг программы
- #include <stdio.h>
- int main() {
- const char CFile[] = "file.txt";
- int cnt;
- char text[64], * p;
- FILE* f = fopen(CFile, "r");
- if (f == NULL) {
- perror(CFile);
- return 1;
- }
- while (fscanf(f, "%63s", text) == 1) {
- cnt = 0;
- for (p = text; *p; ++p) {
- if ((*p == 'a') || (*p == 'A')) {
- cnt++;
- }
- }
- if (1 < cnt) {
- printf("%s : %d\n", text, cnt);
- }
- }
- fclose(f);
- return 0;
- }
Объяснение кода листинга программы
В этом коде на языке C выполняется поиск слов в текстовом файле, в которых буква a
встречается не менее двух раз (без учета регистра).
- В начале определяется имя файла, с которым будет работать программа, и сохраняется в константной строке CFile.
- Затем объявляются необходимые переменные:
- cnt - счетчик, который будет отслеживать количество букв
a
в текущем слове; - text - массив символов, в котором будет храниться текущее слово;
- p - указатель на текущий символ в массиве text;
- f - указатель на файл, который открывается для чтения.
- cnt - счетчик, который будет отслеживать количество букв
- Если файл не может быть открыт, выводится сообщение об ошибке и возвращается код завершения 1.
- В цикле while с помощью функции fscanf считываются слова из файла и сохраняются в массиве text.
- Для каждого слова запускается цикл for, который перебирает все символы слова. Если символ равен
a
илиA
, увеличивается счетчик cnt. - После проверки всех символов слова, если cnt больше 1, слово выводится на экран.
- После окончания чтения файла, функция fclose закрывает файл, а функция fscanf возвращает значение EOF.
- Если в цикле while было прочитано хотя бы одно слово, соответствующее условию, программа выводит сообщение об успешном выполнении.
- В конце программы возвращается код завершения 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д