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

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

24.04.2016, 18:46. Просмотров 356. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 18:46
Ответы с готовыми решениями:

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

Записать в выходной файл все слова начинающиеся с буквы заданной пользователем
Здравствуйте дорогие форумчане! Есть вот такое задание на языке С. Нужно...

Выделить из строки str1 все слова, начинающиеся с гласной буквы, а из строки str2 - слова, начинающиеся с согласной
Выделить из строки str1 все слова, начинающиеся с гласной буквы, а из строки...

Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый файл
Создать текстовый файл из 5 строк, прочитать созданный файл и получить новый...

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

2
LFC
730 / 535 / 416
Регистрация: 17.09.2015
Сообщений: 1,598
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
Модератор
Эксперт CЭксперт С++
10208 / 6107 / 1536
Регистрация: 25.07.2009
Сообщений: 11,607
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 18:34

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

Переписать все латинские буквы верхнего регистра из каждой строки в новый файл
Переписать все латинские буквы верхнего регистра из каждой строки в новый файл....

Скопировать текстовый файл и удалить третье слово в каждой второй строке
Здравствуйте! Помогите, пожалуйста, дописать программу на языке Си. Программа...


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

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

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