Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/48: Рейтинг темы: голосов - 48, средняя оценка - 4.50
16 / 16 / 7
Регистрация: 04.03.2009
Сообщений: 154

Скопировать второе слово каждой строки в начало следующей строки

28.03.2010, 18:11. Показов 9675. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, прошу помощи! Заранее спасибо!
Индивидуальное задание:
Скопировать второе слово каждой строки в начало следующей строки
Примечания:
Составить программу, которая читает текстовый файл и выполняет такое преобразование его, какое задано в Вашем варианте индивидуального задания.
Примечания:
1. Имя файла, который подлежит обработке, должно быть параметром программы.
2. Файл должен иметь не менее 10-15 строк текста.
3. Допускается ограничить максимальную длину строки в тексте 80 символами.
4. Допускается (если в индивидуальном задании не оговорено второе) считать, что слова разделяются пробелами, а знаки препинания рассматривать как буквы.
5. Программу следует разрабатывать, исходя из предположения, что весь текст из файла не может быть размещен в оперативной памяти.
6. Допускается создавать при выполнении программы временные файлы, которые не должны сохранятся после окончания программы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2010, 18:11
Ответы с готовыми решениями:

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

Второе слово второй строки нужно скопировать в первую строку
дано 2 строки, каждые имеют 5 слов с пробелами, нужно обычным способом составить код чтобы 2-ое слово 2-ой строки нужно скопировать в 1-ую...

Строки, символы. вычислить, сколько раз встречается каждый символ в обоих строках, вывести второе слово второй строки в обратном порядке
Пусть даны две строки и два символа. Необходимо определить длину каждой строки, вычислить, сколько раз встречается каждый символ в обоих...

24
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 47
17.12.2011, 15:01
Студворк — интернет-сервис помощи студентам
программу переписал, компилится, но не выдает то что нужно, помогите исправить ошибку
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
//максимальная длина строки
#define MAX_STR 1000
//имя второго файла, который будет использоваться
#define FILE2_NAME "output.txt"
//функция, которая определяет является ли символ разделяющим
int split(char c){
        return ((c==' ')||(c==(char)9)||(c=='\0')||(c=='\n'));
};
int fflush(FILE *stream);
int main(int arc, char * argv[])
{
        char * st=argv[1];
        //открываем 2 файла. один для чтения, другой для записи
        FILE *f1;
        FILE *f2=fopen(FILE2_NAME,"w");
        //объявляем строки и целочисленные переменные
        char str[MAX_STR],res[MAX_STR],word[MAX_STR],last[MAX_STR];
        int uk,word_len,res_len,i,end,sch,last_len,z;
        //цикл будет продолжаться до тех пор пока не будет достигнут конец
        //файла - feof(f1)
        /*if (argc==1){
            printf("there is no file name");
            return 1;
        }*/
        f1=fopen(st,"r");
        if (f1==NULL){
            printf("File does not exist");
            return 2;
        }
        last[0]='\0';
        last_len=0;
        while (!feof(f1)){
                //в строку str считывает 1строку из файла, в строку res
                //будем помещать результат для строки str, а в строку word
                //будем помещать текущее слово. res_len, word_len - длины строк
                str[0]='\0';
                //fflush(f1);
                fgets(str,MAX_STR,f1);
                res_len=last_len;
                for (z=0;z<last_len;z++)
                    res[z]=last[z];
                uk=0;
                word_len=0;
                end=0;
                sch=0;
                while (!end){
                        //если символ не разделяющий, то добавляем его в текущее слово
                        if (!split(str[uk])){
                                word[word_len]=str[uk];
                                word_len++;
                        }
                        else{
                                res[res_len++]=str[uk];
                                if (word_len!=0){
                                    if (sch==1){
                                        for (z=0;z<word_len;z++)
                                            last[z]=word[z];
                                        last_len=word_len;
                                        last[last_len]='\0';
                                    } else
                                    for (z=0;z<word_len;z++)
                                        res[res_len++]=word[z];
                                    sch++;
                                    word_len=0;
                                }
                                //когда дошли до конца строки end=1, и цикл закончится
                                if (str[uk]=='\0')
                                        end=1;
                        }
                        //указатель на символ из строки str увеличиваем на 1
                        uk++;
                }
                //выводим строку res в файл она уже будет содержать переход
                //на следующую строку, если это не последная строка
                fputs(res,f2);
        }
        fprintf(f2,"%s ",last);
        //закрываем файлы
        fclose(f1);
        fclose(f2);
        //и снова открываем, только первый файл уже для записи, а второй для
        //считывания
        f1=fopen(st,"w");
        f2=fopen(FILE2_NAME,"r");
        //пока не дойдем до конца файла считываем по 1 строке из 2 файла и
        //записываем в 1 файл
        while (!feof(f2)){
                str[0]='\0';
                fgets(str,MAX_STR,f2);
                fprintf(f1,"%s",str);
        }
        //закрываем файлы
        fclose(f1);
        fclose(f2);
        //удаляем 2 файл
        remove(FILE2_NAME);
        //сообщаем об успешно выполненой задаче
        return 0;
}
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.12.2011, 06:58
какое задание ?
0
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 47
18.12.2011, 22:38
Задание то же
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.12.2011, 02:38
Цитата Сообщение от DjaFaR74 Посмотреть сообщение
программу переписал
а, ну тогда она вообще неправильная
в начале топика описан алгоритм (сообщение)
в середине топика есть фрагмент, выводящий на экран (сообщение)
0
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 47
19.12.2011, 17:59
я в те переменные не врубаюсь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2011, 17:59

Сравнить каждое слово из заданной строки с первый словом каждой строки в файле
Ребят, помогите!!! Уже наверное неделю мучаюсь(( Что не так? все время какие то ошибки. Задача такова: Нужно сравнить каждое слово из...

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

Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки)
2)Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки)

Строки. Удалить каждое второе слово
Например вводим : Dobruy vecher gorod Выводим : Dobruy gorod Заранее спасибо!

Как сделать, чтобы при вводе в консоли <Enter> не переводил курсор на начало следующей строки?
Есть некий ввод символов, организованный через cin.get(char &amp;), или через cin.get(char &amp;, int), или через cin.getline(char &amp;, int)....


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru