С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
10 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 18
1

Исходный текстовый файл скопировать в результирующий текстовый файл, удалив слова менее N1 символов

15.12.2009, 22:19. Показов 1443. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не так давно я просил помощь в написании программы на си: Исходный текстовый файл скопировать в результирующий текстовый файл, удалив слова менее N1 символов и более N2 символов. Разделители слов - любое количество пробелов.
Получил вот такой ответ :
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <string.h>
 
#define N1 5
#define N2 1
 
int main(void)
{
    FILE *ifp, *ofp;
    char word[4096];
    const char *ifname = "in.txt", *ofname = "out.txt";
    int wlen;
 
    ifp = fopen(ifname, "r");
    if(ifp == NULL || (ofp = fopen(ofname, "w")) == NULL) {
        perror("fopen");
        return 1;
    }
 
    while(fscanf(ifp, "%4095s", word) != EOF) {
        wlen = strlen(word);
        if(wlen < N1 && wlen > N2)
            continue;
        fprintf(ofp, "%s ", word);
    }
 
    fclose(ifp);
    fclose(ofp);
    return 0;
}
И все бы хорошо. только мне надо скопировать не слова из файла 1 в файл 2 а весь файл. т.е. если в файле между словами будет 5 пробелов то надо (удалив необходимые слова) скопировать нужные и эти 5 пробелов и т.д.
Форумчане, не могли бы вы мне помочь исправить этот код немного?
спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
15.12.2009, 22:19
Ответы с готовыми решениями:

Переписать исходный текстовый файл в результирующий переворачивая все слова задом наперед
Осталась последняя лабораторная, но у меня никак не получается написать программу... Задача: Файл...

Переписать исходный текстовый файл в результирующий задом наперед
Написать программу, которая переписывает исходный текстовый файл в результирующий задом наперед....

Дан текстовый файл, содержащий строки. Вывести все слова в строке, которые содержат менее 4-х символов
Дан текстовый файл, содержащий строки. Вывести все слова в строке, которые содержат менее 4-х...

Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*»
Прошу помочь с задачей.Теории не было, сразу практика.Должны своими мозгами , но моих не хватает....

1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.12.2009, 06:14 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <ctype.h>
 
#define MAXWORD  100   /* максимальная длина слова */
 
main()
{
    FILE *ifp, *ofp;
    char word[MAXWORD];
    int c;
    size_t len;
    enum { N1 = 5, N2 = 20 };
    char patt[] = "%99s";
    
    ifp = fopen("ifile", "r");
    ofp = fopen("ofile", "w");
    
    if (!(ifp && ofp))
        return 1;
    
    while ((c = getc(ifp)) != EOF) {
        if (!isalnum(c)) {
            putc(c, ofp);
            continue;
        }
        ungetc(c, ifp);
        fscanf(ifp, patt, word);
        if ((len = strlen(word)) > N1 && len < N2)
            ;
        else
            fprintf(ofp, "%s", word); 
    }        
    
    fclose(ifp);
    fclose(ofp);
    return 0;
}
0
16.12.2009, 06:14
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
16.12.2009, 06:14
Помогаю со студенческими работами здесь

Составить процедуру, которая преобразует исходный текстовый файл FVR со строками различной длины в файл FFIX со строками длиной 80 символов
Составьте процедуру, которая преобразует исходный текстовый файл FVR со строками различной длины в...

Переписать текстовый файл в другой удалив все слова начинающиеся с гласной
Переписать текстовый файл в другой удалив все слова начинающиеся с гласной беда, знаю, как...

Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством символов больше 4 и меньш 6
Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством...

Переписать в новый текстовый файл компоненты исходного файла, удалив слова, содержащие заданную букву
Составление и ввод в ПЭВМ программы с использованием текстовых файлов. Записать текст в файл F....

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы...
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны...

Дан текстовый файл. Преобразовать его, удалив из каждой строки слова, встречающиеся более двух раз.
Дан текстовый файл. Преобразовать его, удалив из каждой строки слова, встречающиеся более двух раз.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru