Чтобы скопировать определенную строку из файла в языке программирования C, вам потребуется открыть файл для чтения, найти нужную строку и скопировать ее содержимое в другую переменную или файл.
Вот пример программы на языке C, которая демонстрирует этот процесс:
#include <stdio.h> #include <string.h> #define MAX_LENGTH 256 int main() { FILE *inputFile; FILE *outputFile; char buffer[MAX_LENGTH]; char searchKey[MAX_LENGTH]; printf("Введите строку, которую нужно скопировать: "); fgets(searchKey, sizeof(searchKey), stdin); searchKey[strcspn(searchKey, "n")] = 0; // удалить символ новой строки inputFile = fopen("input.txt", "r"); // открытие файла для чтения outputFile = fopen("output.txt", "w"); // открытие файла для записи if (inputFile == NULL || outputFile == NULL) { printf("Ошибка открытия файлов.n"); return 1; // выход из программы с ошибкой } while (fgets(buffer, sizeof(buffer), inputFile)) { if (strstr(buffer, searchKey)) { // поиск строки // копирование строки в файл вывода fputs(buffer, outputFile); // или копирование строки в переменную // char copyBuffer[MAX_LENGTH]; // strcpy(copyBuffer, buffer); } } printf("Строка скопирована успешно.n"); fclose(inputFile); // закрываем файлы fclose(outputFile); return 0; // успешное выполнение программы }
В данном примере программа предлагает пользователю ввести строку, которую нужно скопировать. Затем она открывает файл с именем "input.txt" для чтения и файл с именем "output.txt" для записи. Затем она построчно читает файл в буфер и проверяет, содержит ли каждая строка введенную пользователем строку. Если строка содержит введенную подстроку, то она записывается в файл "output.txt". Вместо записи строки в файл, ее можно скопировать в другую переменную, как показано в комментарии.
В конце программа закрывает файлы и сообщает пользователю об успешном выполнении операции.
Пожалуйста, обратите внимание, что в приведенном коде используется функция fgets
для чтения строк из файла. Она будет читать строку с символом новой строки (n
) в конце. Поэтому в коде есть строка searchKey[strcspn(searchKey, "n")] = 0;
, которая удаляет символ новой строки из введенной пользователем строки. Это нужно, чтобы функция strstr
корректно работала при поиске строки.