Скопировать содержимое текстового файла, удалив в каждой строке слово номер N - C (СИ)
Формулировка задачи:
Обработку символьной строки оформить в виде функции. Сканирование строки и доступ к её элементам выполнить ТОЛЬКО с использованием команд адресной арифметики(работа с указателями). Это так же значит, что ЗАПРЕЩЕНО статически объявлять любые строковые переменные!
Скопировать содержимое текстового файла, удалив в каждой строке слово номер N. Я не могу понять,то что написано жирным шрифтом Не могли бы вы привести мне конкретный пример? Спасибо!Решение задачи: «Скопировать содержимое текстового файла, удалив в каждой строке слово номер N»
#include <stdio.h> #include <stdlib.h> #define MAX_CHARS_IN_LINE 2048 void fff(char* txt) { /*..... как-то надо здесь запомнить в указатель начало слова номер N........*/ /*........ потом так-же конец слова , потом возможно memmove какое-нибудь...... */ } int main(int argc, char *argv[]) { FILE *fp; char* str; str = (char*) malloc(MAX_CHARS_IN_LINE); if((fp=fopen(argv[1], "r"))==NULL) { printf("Не удается открыть файл.\n"); exit(1); } while(!feof(fp)) { if(fgets(str, MAX_CHARS_IN_LINE, fp)) fff(str); //printf("%s", str); } fclose(fp); free (str); return 0; }
Объяснение кода листинга программы
В этом коде реализована функция fff
, которая принимает строку в качестве аргумента и удаляет из неё слово, отмеченное номером N. Однако, точное удаление слова обосновано не было, и код для этого не был написан.
Код в функции main
открывает указанный в командной строке файл для чтения, затем читает его построчно с помощью функции fgets
. Каждую прочитанную строку передают в функцию fff
для обработки. После завершения чтения файла, он закрывается, а выделенная для работы с ним память освобождается.
Обратите внимание, что в этом коде не реализован механизм определения, содержит ли строка слово, которое должно быть удалено. Также не было реализовано само удаление этого слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д