Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
1

Изменение порядка слов в строке на обратный

18.04.2014, 21:06. Просмотров 979. Ответов 9
Метки нет (Все метки)

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

Исходный текст:
Создать новую
тему

Текст на выходе:
Тему новую
создать

У меня получилось:
Тему
Тему новую
Тему новую создать


Т.е. программа всё слепляет в одну строку, а нужно сохранить порядок исходного текста. Очень буду благодарен за любую помощь.

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
#include "stdafx.h"
#include <iostream>
#include <cstring> 
#include <string>
#include <conio.h>
#include <fstream>
#include <stdio.h>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Rus");
    int i1 = 0;
    char s1[5000];
    ifstream fin1 ("F.txt");
    ofstream fout ("G.txt");
    
    string str;
    string instr;
    string outstr;
    while(!fin1.eof())
    {
        fin1 >> str;
        fout<<endl;
        if(str.size())
        {
        outstr = str + ' ' + outstr;
        fout<<outstr;
        } 
    }
    fin1.close();
    fout.close();
    cout<<"Изменение порядка строк произведено успешно!"<<endl;
    system("pause");
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 21:06
Ответы с готовыми решениями:

Изменение порядка слов в строке на обратный
НУЖНО ДО 23 00. ПОЖАЛУЙСТА СПАСАЙТЕ Добавлено через 2 минуты код нужен...

Изменение порядка элементов в каждом столбце матрицы на обратный
Здравствуйте! не могу решить задачу, есть ли идеи как это реализовать? ...

Изменение порядка элементов массива на обратный и ввести его в новый массив
Нужно изменить порядок массива на обратный, ввести его в ново-созданный массив....

Обратный порядок слов в строке
Введенное предложение нужно обработать так, чтобы его последовательность слов...

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

9
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
18.04.2014, 21:16 2
Считываешь слова, записываешь поочерёдно в массив, потом просматриваешь его с конца и получаешь всё в обратном порядке.
0
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
19.04.2014, 12:52  [ТС] 3
есть ещё вариант кода, но он тоже не работает

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
#include "stdafx.h"
#include <iostream>
#include <cstring> 
#include <string>
#include <conio.h>
#include <fstream>
#include <stdio.h>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Rus");
    int i1 = 0;
    char s1[5000];
    char **buffer;
    ifstream fin1 ("F.txt");
    ofstream fout ("G.txt");
    
    string str;
    string instr;
    string outstr;
    while(!fin1.eof())
    {
        fin1.getline(s1,500);
        //cout << sizeof(s1) << endl;
        while(strchr(s1,))
        for(int count = sizeof(s1); count > 0;count--)
        {
            fout << s1[count];
        }
        fout<<endl;
    }
    fin1.close();
    fout.close();
    cout<<"Изменение порядка строк произведено успешно!"<<endl;
}
0
IrineK
Заблокирован
19.04.2014, 13:02 4
Цитата Сообщение от nmcf Посмотреть сообщение
записываешь поочерёдно в массив
Лучше в другой файл.

Добавлено через 2 минуты
avatar1870,
непонятно, что у вас является строкой.
В примере
Цитата Сообщение от avatar1870 Посмотреть сообщение
Исходный текст:
Создать новую
тему
две строки.

Тогда в ответе должно быть
новую Создать
тему

Вы же, похоже, считаете строкой весь текст.
Уточните этот момент.
0
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
19.04.2014, 13:35  [ТС] 5
Не могу понять, как это сделать. Можете помочь, а то сдавать(
0
IrineK
Заблокирован
19.04.2014, 13:37 6
Цитата Сообщение от avatar1870 Посмотреть сообщение
как это сделать
Еще раз - ЧТО сделать?
1) переставить слова задом наперед во всем тексте
или
2) переставить слова задом наперед в каждой отдельной строке из текста
0
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
19.04.2014, 19:47  [ТС] 7
Исходный текст:

Нет ничего невозможного
Подписывайтесь на наш YouTube канал


На выходе:
невозможного ничего Нет
канал YouTube наш на Подписывайтесь
0
IrineK
Заблокирован
20.04.2014, 04:19 8
Лучший ответ Сообщение было отмечено avatar1870 как решение

Решение

Это называется:
переставить слова задом наперед в каждой отдельной строке из текста.

Добавлено через 46 минут
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
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
 
int main()
{   ifstream ifs ("F.txt");
    ofstream ofs ("G.txt");
 
    if (!ifs.is_open() || !ofs.is_open())
    {   cout << "Error working with files";
        cin.get();
        return 1;
    }
 
    string buf;
    while (getline(ifs, buf))       //считываем строку
    {   istringstream iss (buf);    //скармливаем ее входному потоку
        string word, reverse;
        while (iss >> word)         //берем слова из входного потока (где лежит строка)
        {   reverse.insert(0, " ");     //сначала пробел
            reverse.insert(0, word);    //потом слово
        }
        reverse.resize (reverse.size() - 1); //сзади - один ненужный пробел
        ofs << reverse << '\n';     //отправляем готовую строку-перевертыш в файл результатов
    }
 
    ifs.close();
    ofs.close();
 
    cout << "Done";
 
    cin.get();
    return 0;
}
1
IrineK
Заблокирован
20.04.2014, 04:24 9
Результат
1
Миниатюры
Изменение порядка слов в строке на обратный  
avatar1870
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
20.04.2014, 12:33  [ТС] 10
Спасибо вам огромное! Помогли очень сильно!
0
20.04.2014, 12:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 12:33

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

Изменение порядка символов в строке s на противоположный
Помогите, пожалуйста. Функция - Reverse(s). Назначение - изменение порядка...

Обратный порядок слов предложения
11. Напечатать все слова предложения в обратном порядке. Входные данные –...


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

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

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