Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
nite
10 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 18
1

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

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

Не так давно я просил помощь в написании программы на си: Исходный текстовый файл скопировать в результирующий текстовый файл, удалив слова менее 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 22:19
Ответы с готовыми решениями:

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

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

Скопировать текстовый файл в новый файл, заменив в каждый строке слова "ok" на "*"
Скопировать текстовый файл в новый файл, заменив в каждый строке слова &quot;ok&quot; на...

Дан текстовый файл. Вывести в другой файл самые длинные слова текста
Дан текстовый файл. Вывести в другой файл самые длинные слова текста (с учетом...

Создать текстовый файл F1. Скопировать в файл F2 только те строки из F1, которые заканчиваются символом "А"
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

1
accept
4835 / 3257 / 464
Регистрация: 10.12.2008
Сообщений: 10,569
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2009, 06:14

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Всем привет, задание такое: Создать текстовый файл F1 не менее, чем из 10 строк...

Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

Из файла F в текстовый файл скопировать все нечетные числа
прошу написать программу с помощью функций. В типизированный файл F с помощью...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru