Нужно дополнить код, чтобы программа считывала несколько строк в текстовом файле - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_CTYPE, "rus"); FILE *file, *file1; file = fopen("file.txt", "r"); file1 = fopen("file2.txt", "w"); char *txt; int i = 0, n = 100; txt = (char*) malloc(n*sizeof(char)); fgets(txt, n, file); while (txt[i] != '\0') { if (txt[i] == 'ь' && txt[i-1] == 'т') { txt[i] = 'я'; txt[i-1] = 'с'; } i++; } fputs(txt, file1); fclose(file); getch(); free(txt); printf("Данные записаны"); return 0; }
Решение задачи: «Нужно дополнить код, чтобы программа считывала несколько строк в текстовом файле»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define DELIM " \n\t" char* str_replace(char* str0, const char* str1, const char* str2) { char *ptr; if (ptr = strstr(str0, str1)) strcpy(ptr, str2); return str0; } int main(void) { setlocale(LC_CTYPE, ""); char buf[BUFSIZ]; FILE *file, *file1; file = fopen("file.txt", "r"); if (!file) return 1; file1 = fopen("file2.txt", "w"); if (!file1) return 1; char *tmp; while (fgets(buf, BUFSIZ, file)) { for (char* ptr = strtok(buf, DELIM); ptr; ptr = strtok(NULL, DELIM)) fprintf(file1,"%s ", str_replace(ptr, "ть", "ся")); fputc('\n', file1); } fclose(file); fclose(file1); printf("Данные записаны\n"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками.
- Определение разделителя.
- Реализация функции замены подстроки в строке.
- Открытие входного и выходного файлов на чтение и запись соответственно.
- Проверка на успешное открытие файлов.
- Создание временной переменной для хранения строки при разборе строки на токены.
- Разбор строки на токены с помощью функции strtok.
- Запись каждого токена в выходной файл с добавлением пробела в конце.
- Закрытие файлов.
- Вывод сообщения об успешном выполнении программы.
- Возврат значения 0, указывающего на успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д