Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
25 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 15

Скопировать из файла F1 в файл F2 строки, которые начинаются с буквы A

19.05.2018, 15:32. Показов 2367. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как обращаться к строкам в файле по типу file[0]
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2018, 15:32
Ответы с готовыми решениями:

Скопировать из файла F1 в файл F2 строки, которые начинаются с буквы A
я не особо эту тему понимаю, помогите кто может.

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А»
Здравствуйте дорогие друзья , когда я был маленький , я любил (да и люблю) играть в игры , поэтому решил я стать программистом , ну и пошел...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А».
Постановка задачи Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 1)Скопировать в файл F2 только те...

1
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
21.05.2018, 17:00
Лучший ответ Сообщение было отмечено bedermau5 как решение

Решение

Для того чтобы обращаться к строками файла таким образом, нужно сначала записать их в память. Напишем функцию для этого:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Максимальная длина строки в файле. */
#define MAX_STR_LEN 4096
/* Максимальное количество строк в файле. */
#define MAX_STRS_NM 1024
 
char** get_file_strs(FILE* file, size_t* strs_nm) {
    char buffer[MAX_STR_LEN];
    /* Создаем массив строк. Тут нужно проверить указатель
       на валидность, но для простоты оставим так. */
    char** strs = malloc(MAX_STRS_NM * sizeof(char*));
 
    /* Считываем файл построчно... */
    while (fgets(buffer, sizeof(buffer), file))
        /* ...и копируем каждую строку в наш массив.
           Одновременно с этим, увеличиваем счетчик записанных
           строк, который объявлен во внешнем коде. */
        strs[(*strs_nm)++] = strdup(buffer);
 
    /* Возвращаем наш массив строк. */
    return strs;
}
Пример использования:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
    FILE* f = fopen("temp", "r");
 
    size_t strs_nm = 0;
    char** strs = get_file_strs(f, &strs_nm);
 
    for (int i = 0; i < strs_nm; ++i) {
        printf("%s", strs[i]);
 
        /* Не забываем освободить каждую строку... */
        free(strs[i]);
    }
 
    /* ...и сам массив. */
    free(strs);
    /* А также закрыть файл. */
    fclose(f);
}
На случай, если ваш компилятор не поддерживает strdup:
C
1
2
3
4
5
6
7
8
9
10
char* strdup(const char* s) {
    char* copy = malloc(strlen(s) + 1);
    
    if (copy == NULL) {
        errno = ENOMEM;
        return NULL;
    }
    
    return strcpy(copy, s);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2018, 17:00
Помогаю со студенческими работами здесь

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А»
не могу решить задачу, не откажусь от помощи, добрые люди))) Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

Переписать в файл g все строки из файла f, которые начинаются с буквы 'c'.
При открытии и сохранении файла необходимо использовать файловые диалоги. Задание - Дан текстовый файл f. Переписать в файл g все...

Скопировать в новый файл те строки исходного, которые начинаются и оканчиваются на одну и ту же букву
Доброго времени суток. Помогите решить задание. 1)Программа на СИ должна создавать папку temp в которой пользователь создает файл 1.txt с...

Дан файл. Записать в другой файл только те строки, которые начинаются с заданной буквы
Помогите пожалуйста.))Дан файл. Записать в другой файл только те строки, которые начинаются с заданной буквы. В VB6

Записать в другой файл только те строки, которые начинаются с заданной буквы
Помогите пож-та с прогой. дан файл. записать в другой файл только те строки, которые начинаются с заданной буквы Я начал так uses...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru