Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
WindCube
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 1
1

Создать новый текстовый файл, в каждой строке которого записаны слова, начинающиеся с буквы ‘a’

24.04.2016, 18:46. Просмотров 566. Ответов 2
Метки нет (Все метки)

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

Вот,что у меня получилось,но эта программа удаляет слова,начинающиеся с буквы 'а',а мне надо наоборот-чтобы оставляла их.
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
38
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
 
int main(void)
{
    char str[100];
    char *a, *b;
    int i;
    FILE *fin, *fout;
    fin = fopen("text.txt", "rt");
    fout = fopen("text2.txt", "wt");
    if (fin == NULL || fout == NULL)
    {
        printf("Errorr");
        getch();
        return 0;
    }
    while (fgets(str, 100, fin))
    {
        for (i = 0; i < 100; i++)
            if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
            {
                a = str+i;
                b = a;
                while (isalpha(*b))
                    ++b;
                strcpy(a, b);
            }
                
    }
    fputs(str, fout);
    fclose(fin);
    fclose(fout);
    return 0;
 
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 18:46
Ответы с готовыми решениями:

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

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

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и...

Записать в новый файл все слова, начинающиеся с определенной буквы
Дан текстовый файл с текстом не менее 15 строк. Записать в новый файл все слова, начинающиеся с...

2
LFC
732 / 537 / 416
Регистрация: 17.09.2015
Сообщений: 1,599
02.05.2016, 18:01 2
WindCube,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#define DELIM "     \n,.;:!?'"
int main()
{
    FILE *fin, *fout;
    fin = fopen("input.txt", "r");
    fout = fopen("output.txt", "w");
 
    char s[128], w[30], *p;
    while(fgets(s, 128, fin)){
        for(p = strtok(s, DELIM); p; p = strtok(NULL, DELIM)){
            strcpy(w, p);
            if(w[0] == 'a')
                fprintf(fout, "%s ", w);
        }
        fprintf(fout, "\n");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}
1
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10751 / 6479 / 1601
Регистрация: 25.07.2009
Сообщений: 12,225
02.05.2016, 18:34 3
Цитата Сообщение от LFC Посмотреть сообщение
strcpy(w, p);
Просто из любопытства: с какой целью Вы каждое слово в промежуточный буфер копируете? Оно и так отработает:
C
1
2
3
for ( p = strtok(s, DELIM); p; p = strtok(NULL, DELIM) )
    if ( *p == 'a' )
        fprintf(fout, "%s ", p);
1
02.05.2016, 18:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 18:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дан текстовый файл. Вывести все слова, начинающиеся с заданной буквы
Дан текстовый файл. Вывести все слова, начинающиеся с заданной буквы (к примеру &quot;а&quot;). Составить...

Работа с файлами. Записать в новый файл все слова из исходного, начинающиеся с заданной буквы
Дан символ С – строчная (маленькая) русская буква и текстовый файл. Создать строковый файл и...

Скопировать текстовый файл в новый файл, заменив в каждой строке сочетания цифр на «*»
Скопировать текстовый файл в новый файл, заменив в каждой строке сочетания цифр на «*», и оставляя...

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


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

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

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