Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 405
18.04.2014, 21:06     Изменение порядка слов в строке на обратный #1
Добрый вечер, уважаемые программисты. Нужно сделать программу, которая слова в строке переставляет в обратном порядке. Например:

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

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

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


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

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");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 21:06     Изменение порядка слов в строке на обратный
Посмотрите здесь:

C++ Обратный порядок слов в строке
C++ Обратный порядок слов в предложении
Изменить порядок следования слов в строке на обратный C++
Изменение порядка символов в строке s на противоположный C++
Напишите функцию, которая для любого целого аргумента возвращает целое значение, полученное изменением порядка следования цифр на обратный C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,660
18.04.2014, 21:16     Изменение порядка слов в строке на обратный #2
Считываешь слова, записываешь поочерёдно в массив, потом просматриваешь его с конца и получаешь всё в обратном порядке.
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 405
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;
}
IrineK
Заблокирован
19.04.2014, 13:02     Изменение порядка слов в строке на обратный #4
Цитата Сообщение от nmcf Посмотреть сообщение
записываешь поочерёдно в массив
Лучше в другой файл.

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

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

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

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


На выходе:
невозможного ничего Нет
канал YouTube наш на Подписывайтесь
IrineK
Заблокирован
20.04.2014, 04:19     Изменение порядка слов в строке на обратный #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Это называется:
переставить слова задом наперед в каждой отдельной строке из текста.

Добавлено через 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;
}
IrineK
Заблокирован
20.04.2014, 04:24     Изменение порядка слов в строке на обратный #9
Результат
Миниатюры
Изменение порядка слов в строке на обратный  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 12:33     Изменение порядка слов в строке на обратный
Еще ссылки по теме:

Обратный порядок слов предложения C++
Изменение порядка элементов массива на обратный и ввести его в новый массив C++
Изменение порядка слов в строке на обратный C++

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

Или воспользуйтесь поиском по форуму:
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 405
20.04.2014, 12:33  [ТС]     Изменение порядка слов в строке на обратный #10
Спасибо вам огромное! Помогли очень сильно!
Yandex
Объявления
20.04.2014, 12:33     Изменение порядка слов в строке на обратный
Ответ Создать тему
Опции темы

Текущее время: 14:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru