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

String. Расположение слов в обратном порядке - C++

Восстановить пароль Регистрация
 
Nigmatulin
 Аватар для Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
09.08.2016, 14:36     String. Расположение слов в обратном порядке #1
Доброго времени суток. У меня снова вопрос касательно строк.
Дана вот такая задача:

{deleted}
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
П.5.19.Правил
Запрещено создавать темы в виде ссылок на задания или коды программ, расположенные на других сайтах.


Результат выполнения программы должен быть таким:
in: Пример входных данных в программу
out: программу в данных входных Пример

или же для решения этой задачи нужен такой цикл:
C++
1
2
3
4
for (int i(str.size()-1); i>=0; i--)
{
    cout<<str[i];
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
09.08.2016, 14:44     String. Расположение слов в обратном порядке #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
    const std::string str = "Privet kak dela";
 
    std::string revert = str;
    std::reverse( std::begin( revert ), std::end( revert ) );
 
    cout << str << endl;
    cout << revert << endl;
}
Peoples
714 / 374 / 339
Регистрация: 06.02.2016
Сообщений: 986
Записей в блоге: 10
Завершенные тесты: 3
09.08.2016, 14:58     String. Расположение слов в обратном порядке #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
rikimaru2013, это будет просто вывод букв в обратном порядки, а не последовательности слов

Добавлено через 5 минут
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
#include<iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <fstream>
using namespace std;
int main() {
    string s;
    vector<string>val;
    getline(cin,s);
    ofstream ff;
    ff.open("df.txt");   // велосипед 
    ff<<s;
    ff.close();
    ifstream fd;
    fd.open("df.txt"); 
    while(!fd.eof()) {
        getline(fd,s,' ');
        val.push_back(s);
    }
    fd.close();
    reverse(val.begin(),val.end());
    for(vector<string>::iterator iter=val.begin(); iter!=val.end(); iter++) {
        cout<<*iter<<" ";
    }
    return 0;
}
Nigmatulin
 Аватар для Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
09.08.2016, 15:07  [ТС]     String. Расположение слов в обратном порядке #4
Peoples, спасибо вам за помощь) А есть ли более простой вариант алгоритма ? А то такой пока для меня слишком уж сложный ))
rikimaru2013, мой цикл тоже работает по такому же принципу, тоже просто выводит буквы в обратном порядке )
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
09.08.2016, 15:07     String. Расположение слов в обратном порядке #5
Peoples, где слова последовательность и слово у ТСа то?
Peoples
714 / 374 / 339
Регистрация: 06.02.2016
Сообщений: 986
Записей в блоге: 10
Завершенные тесты: 3
09.08.2016, 15:08     String. Расположение слов в обратном порядке #6
Цитата Сообщение от Nigmatulin Посмотреть сообщение
n: Пример входных данных в программу
out: программу в данных входных Пример
Пример есть
Nigmatulin
 Аватар для Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
09.08.2016, 15:14  [ТС]     String. Расположение слов в обратном порядке #7
Peoples, сама задача звучит так: Дана строка, состоящая из русских слов, разделенных пробелами. Вывести строку, содержащую эти же слова, , но расположенные в обратном порядке.
Я думаю, ваше решение верное, но слишком сложное пока для меня )
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
09.08.2016, 15:14     String. Расположение слов в обратном порядке #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А нашёл

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
#include <string>
#include <sstream>
#include <iostream>
#include <vector>
using namespace std;
 
vector<string> split( const string &s, char delim)
{
    vector<string> result;
    stringstream ss( s );
    string item;
    while( getline( ss, item, delim ) )
        result.push_back( item );
    return result;
}
 
int main()
{
    const char delim = ' ';
    const std::string str = "Privet kak dela";
    auto words = split( str, delim );
 
    std::reverse( std::begin( words ), std::end( words ) );
 
    for( auto& word : words )
        cout << word << delim;
}
Nigmatulin
 Аватар для Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
09.08.2016, 16:16  [ТС]     String. Расположение слов в обратном порядке #9
Можно ли получить такой же результат, но без векторов ?

Добавлено через 55 минут
Вопрос, могу ли я строку выводить частями. Например дана строка из 20 элементов.

Добавлено через 23 секунды
Вопрос, могу ли я строку выводить частями. Например дана строка из 20 элементов.
сначала, например, вывести с 15 по 20 элемент, потом с 5 по 10 и тд ?
Peoples
714 / 374 / 339
Регистрация: 06.02.2016
Сообщений: 986
Записей в блоге: 10
Завершенные тесты: 3
09.08.2016, 16:25     String. Расположение слов в обратном порядке #10
Nigmatulin,
C++
1
2
3
4
5
6
7
8
using namespace std;
int main(){
string s;
getline(cin,s); // Да, такое вполне возможно!
string s1=s.substr(4,12);
cout<<s1; // такое вполне
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2016, 16:27     String. Расположение слов в обратном порядке
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Nigmatulin
 Аватар для Nigmatulin
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 18
09.08.2016, 16:27  [ТС]     String. Расположение слов в обратном порядке #11
Peoples, спасибо огромное. Очень помогли )
Yandex
Объявления
09.08.2016, 16:27     String. Расположение слов в обратном порядке
Ответ Создать тему
Опции темы

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