В текстовом файле подсчитать количество строк, которые начинаются и заканчиваются одной и той же буквой - C (СИ)
Формулировка задачи:
Не подскажете, в чем ошибка? Программа не правильно считает.
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <stdio.h> #include <string.h> main() { FILE *fp; char *ch; int t=0;//количество строк int y;//длина строки clrscr(); printf("\nВ текстовом файле подсчитать кол-во строк, которые"); printf("\nначинаются и заканчиваются одной и той же буквой.\n"); if ((fp = fopen ("1.txt","r"))!=NULL) { while ((fgets(ch,255,fp))!=NULL) {y=strlen(ch); if (ch[0]==ch[y-2]) t++;} printf("количество строк= %u \n",t); fclose(fp); } else printf("\nне могу открыть файл.\n"); t=getch(); }
Решение задачи: «В текстовом файле подсчитать количество строк, которые начинаются и заканчиваются одной и той же буквой»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> #include <string.h> main(){ FILE *fp; char ch[255]; int t=0;//количество строк int y;//длина строки setlocale(LC_ALL, ".1251"); // clrscr(); printf("\nВ текстовом файле подсчитать кол-во строк, которые"); printf("\nначинаются и заканчиваются одной и той же буквой.\n"); if ((fp = fopen ("1.txt","r"))!=NULL){ while ((fgets(ch,255,fp))!=NULL){ y=strlen(ch); if ( ch[y - 1] == '\n' ) ch[--y] = 0; if (ch[0]==ch[y-1]) t++; } printf("количество строк= %u \n",t); fclose(fp); } else printf("\nне могу открыть файл.\n"); t=getch(); }
Объяснение кода листинга программы
- Объединение всех необходимых заголовочных файлов.
- Создание указателя на файл и его открытие в режиме чтения.
- Создание массива символов для считывания строки из файла.
- Инициализация переменных: счётчика строк и длины строки.
- Установка текущей локали на русскую.
- Вывод на экран сообщение с просьбой указать файл.
- Ввод имени файла с помощью функции fgets.
- Считывание строки из файла в массив символов до конца строки.
- Удаление символа новой строки из последней позиции массива.
- Проверка, является ли первый и последний символ строки одинаковыми.
- Если условие выполняется, то увеличивается счётчик строк.
- После окончания цикла, выводится на экран количество строк, удовлетворяющих условию.
- Закрытие файла.
- Если файл не удалось открыть, то выводится сообщение об ошибке.
- Ожидание нажатия клавиши для выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д