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

Слова в противоположном порядке - C++

Восстановить пароль Регистрация
 
gamer0n
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 47
17.06.2013, 19:25     Слова в противоположном порядке #1
Пользователь вводит строку из слов. Вывести слова в противоположном порядке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 19:25     Слова в противоположном порядке
Посмотрите здесь:

Вывести слова в обратном порядке C++
C++ Отсортировать слова в обратном порядке
Слова текста в алфавитном порядке C++
C++ Напечатать слова в алфавитном порядке
Вывести слова в обратном порядке C++
Получите число, записанное теми же цифрами, но в противоположном порядке C++
C++ Рекурсия. Получите число, записанное теми же цифрами, но в противоположном порядке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
2e1773ce
6 / 6 / 0
Регистрация: 10.03.2013
Сообщений: 96
17.06.2013, 19:51     Слова в противоположном порядке #2
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <algorithm>
int main()
{
    char mas[]="hello world";
    std::reverse(mas , mas+ strlen(mas));// << std::endl;
    std::cout << mas;
    system("pause");
    return 0;
}
Добавлено через 10 минут
Цитата Сообщение от gamer0n Посмотреть сообщение
Пользователь вводит строку из слов.
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    char mas[100];
    std::cout << "Enter string" << std::endl;
    std::cin.getline(mas, strlen(mas));
    std::reverse(mas , mas + strlen(mas));
    std::cout << mas;
    system("pause");
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.06.2013, 20:38     Слова в противоположном порядке #3
Цитата Сообщение от gamer0n Посмотреть сообщение
Пользователь вводит строку из слов. Вывести слова в противоположном порядке.
можно использовать хвостовую рекурсию
rangerx
17.06.2013, 21:13
  #4

Не по теме:

Цитата Сообщение от 2e1773ce Посмотреть сообщение
char mas[100];
std::cin.getline(mas, strlen(mas));
Для того чтобы посчитать количество символов в строке strlen нужна строка заканчивающаяся символом '\0', у вас же массив не инициализирован вообще. В данном случае следует использовать sizeof, а не strlen.
C++
1
std::cin.getline(mas, sizeof(mas));

gamer0n
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 47
18.06.2013, 09:58  [ТС]     Слова в противоположном порядке #5
int main()
{
char mas[100];
std::cout << "Enter string" << std::endl;
std::cin.getline(mas, strlen(mas));
std::reverse(mas , mas + strlen(mas));
std::cout << mas;
system("pause");
return 0;
}
Не работает, выводит ентр стринг и после ввода закрывается
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,888
18.06.2013, 19:47     Слова в противоположном порядке #6
gamer0n, вы за ответами в теме следите? В приведённом коде допущена ошибка, см. мой предыдущий пост.

Добавлено через 2 минуты
Хотя, вам всё равно это решение не подойдёт, в задании требуется вывести в обратном порядке слова, а не переворачивать строку.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5665 / 3144 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
18.06.2013, 19:52     Слова в противоположном порядке #7
2e1773ce, насколько я понял, требуются вывести слова в противоположном порядке, а не буквы

Добавлено через 4 минуты
Одно из множеств решений:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <string>
#include <list>
 
typedef std::istream_iterator<std::string> input_str;
typedef std::ostream_iterator<std::string> output_str;
typedef std::list<std::string> l_str;
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    l_str l;
    std::copy(input_str(ist), input_str(), std::inserter(l, l.begin()));
    std::reverse_copy(l.begin(), l.end(), output_str(std::cout, " "));
}
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 20:39     Слова в противоположном порядке #8
ну и в добавок рекурсия (с хвОстОм____)
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>
void Print(char *s)
{
    char *word;
    if (word = strtok(NULL, " .,;:\t\n"))
    {
         Print(s);
         puts(word);
    }
}
int main()
{
    char s[1024], *word;
    fgets(s, 1024, stdin);
    if (word = strtok(s, " .,;:\t\n"))
    {
        Print(s);
        puts(word);
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2013, 00:49     Слова в противоположном порядке
Еще ссылки по теме:

Напечатать слова предложения в таком порядке, чтобы последняя буква каждого словасовпадала с первой буквой следующего слова C++
Вывести слова в обратном порядке C++
Вывести слова в таком порядке, чтобы последняя буква каждого слова совпадала с первой буквой следующего C++
C++ Вывести слова в алфавитном порядке
C++ Напечатать слова в алфавитном порядке

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

Или воспользуйтесь поиском по форуму:
gamer0n
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 47
19.06.2013, 00:49  [ТС]     Слова в противоположном порядке #9
Спасибо парни)
Yandex
Объявления
19.06.2013, 00:49     Слова в противоположном порядке
Ответ Создать тему
Опции темы

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