Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
4 / 2 / 0
Регистрация: 12.01.2012
Сообщений: 30

Сделать так что б в строке все слова были напечатаны наоборот

13.01.2012, 17:00. Показов 4383. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожайлуста:
Преобразовать строку таким образом, чтобы все слова в ней были напечатаны наоборот (зеркально).
Я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
int main(int argc, char * argv[])
{
        string strLine("Tupo Tekst");
        copy(strLine.rbegin(), strLine.rend(), ostream_iterator<char>(cout, ""));
        cout << '\n';
 
        system("pause");
        return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!


Мне сказали что програма не выполняет поставленой задачи...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2012, 17:00
Ответы с готовыми решениями:

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

Преобразовать строку таким образом, чтобы все слова в ней были напечатаны наоборот
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце...

Преобразовать строку таким образом, чтобы все символы в ней были напечатаны наоборот
Преобразовать строку таким образом, чтобы все символы в ней были напечатаны наоборот. Помогите пожалуйста!

12
31 / 31 / 16
Регистрация: 30.11.2010
Сообщений: 81
13.01.2012, 17:11
используйте алгоритм reverse()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string x; 
    cin >> x;
    reverse(x.begin(), x.end());
    cout << x << endl;
    return 0;
}
2
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
13.01.2012, 17:27
Предполагаю, что все слова разделены в строке пробелами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <sstream>
using namespace std;
 
int main() {
    string word, strLine("One Two Three");
    istringstream stream( strLine );
    strLine.clear();
    while ( stream >> word ){
        strLine.append( word.rbegin(), word.rend());
        strLine.append(" ");
    }
    cout << strLine;
    return 0;
}
2 Vergil111 - у Вас переворачивает всю строку, а не слова отдельные.
2
31 / 31 / 16
Регистрация: 30.11.2010
Сообщений: 81
13.01.2012, 18:47
Проглядел, проглядел в задании, каюсь,
Roof=)
Тогда нам помогут лямбда-выражения=)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    vector<string> text((istream_iterator<string>(cin)),
                                     (istream_iterator<string>()));
    for_each(text.begin(), text.end(), [](string& s){ reverse(s.begin(), s.end());});
    copy(text.begin(), text.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
    return 0;
}
окончания ввода строки в консоли Windows Enter, затем на новой строчке Ctrl+z и опять Enter
0
4 / 2 / 0
Регистрация: 12.01.2012
Сообщений: 30
14.01.2012, 16:43  [ТС]
Мне написали что программа всё ещё не выполняет поставленную задачу....
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.01.2012, 17:49
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
#include <iostream>
#include <algorithm>
#include <string>
 
int main()
{
    std::string s;
    std::cout << "input string: ";
    std::getline(std::cin, s);
 
    const std::string delim = " ,.:;!?";
    size_t pos_start = s.find_first_not_of(delim);
    size_t pos_end = s.find_first_of(delim, pos_start);
 
    while((pos_start != std::string::npos))
    {
        if(pos_end == std::string::npos)
        {
            std::reverse(s.begin() + pos_start, s.end());
            break;
        }
 
        std::reverse(s.begin() + pos_start, s.begin() + pos_end);
        pos_start = s.find_first_not_of(delim, pos_end);
        pos_end = s.find_first_of(delim, pos_start);
    }
 
    std::cout << "result: " << s << "\n";
}
2
4 / 2 / 0
Регистрация: 12.01.2012
Сообщений: 30
18.01.2012, 00:37  [ТС]
мне сказали: что программа Всё ещё не выполняет поставленной задачи....
я кажется понял как надо но сам не могу сделать (пример: privet vsem - mesv tevirp), помогите пожайлуста...
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
18.01.2012, 11:30
Ну вот пример , проще некуда :
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
 //privet vsem - mesv tevirp
 
// .......... на С++ ..............
 
#include<iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    int i;
     int index = 11;
     char arr[11] = {'p' ,'r','i' ,'v' ,'e' ,' t',' ','v' ,'s' ,'e' ,'m'};
 
     //     читаем строку 
 
      for( i = 0; i < index; i++)
        cout << arr[i] ;
 
 
    //     читаем строку с конца массива
     cout << "\t";
 
     for( i = (index - 1); i > 0 ; i--)
        cout << arr[i] ;
     _getch();
}
Добавлено через 9 часов 55 минут
Во втором цикле опечатка .Вот так нужно :
C++
1
  for( i = (index-1); i > -1 ; i--)
1
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
18.01.2012, 13:54
я кажется понял как надо но сам не могу сделать (пример: privet vsem - mesv tevirp), помогите пожайлуста...
Переделал чуток пример от Vergil111 из поста #2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main() {
    cout << "Введите строку" << endl;
    string x;
    getline( cin, x );
    reverse( x.begin(), x.end() );
    cout << x << endl;
    return 0;
}
Консоль
Введите строку
privet vsem
mesv tevirp
2
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.01.2012, 14:38
Цитата Сообщение от Сергейййййййй Посмотреть сообщение
я кажется понял как надо но сам не могу сделать (пример: privet vsem - mesv tevirp), помогите пожайлуста...
Это реверс всей строки, а не слов, в нее входящих. И думать тут особо не нужно.
C++
1
2
3
std::string str;
std::getline(std::cin, str);
std::cout << std::string( str.rbegin(), str.rend() );
1
4 / 2 / 0
Регистрация: 12.01.2012
Сообщений: 30
18.01.2012, 20:57  [ТС]
Цитата Сообщение от Roof Посмотреть сообщение
Переделал чуток пример от Vergil111 из поста #2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main() {
    cout << "Введите строку" << endl;
    string x;
    getline( cin, x );
    reverse( x.begin(), x.end() );
    cout << x << endl;
    return 0;
}
Консоль
Введите строку
privet vsem
mesv tevirp

Мне сказали почему порядок слов изменён?? как сделать что б порядок не изменялся?
0
 Аватар для Roof
155 / 155 / 44
Регистрация: 03.11.2010
Сообщений: 393
18.01.2012, 21:29
2 Сергейййййййй - а ты ведь написал:
Цитата Сообщение от Сергейййййййй Посмотреть сообщение
я кажется понял как надо но сам не могу сделать (пример: privet vsem - mesv tevirp), помогите пожайлуста...
Зачем в пример приводил?
Сформулируй задачу четко и ясно. Приведи пример входных данных и пример выходных данных.
А то не понять чего ты хочешь.
0
4 / 2 / 0
Регистрация: 12.01.2012
Сообщений: 30
19.01.2012, 01:52  [ТС]
извините за предоставленные неудобства с моей стороны,я просто предполагал что пример будит выглядеть так...,но на самом деле он выглядит вот так: (one two three - eno owt eerht).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.01.2012, 01:52
Помогаю со студенческими работами здесь

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

Как сделать так что бы массив выводил наоборот
Как сделать так что бы массив выводил наоборот???

В строке все слова зашифрованы – каждое из них записано наоборот. Расшифровать заданное сообщение
В строке все слова зашифрованы – каждое из них записано наоборот. Расшифровать заданное сообщение.

Текстовый файл: сделать так, чтобы все строки были задом наперед
Добрый вечер, уважаемые форумчане! Возникла небольшая проблема с написанием такой программы: Дан текстовый файл, состоящий из строк,...

Изменить формулу так что б все элементы нечетных столбцов были нулевые
Есть программа нужно изменить формулу так что б все элементы нечетных столбцов были нулевые #include &lt;stdio.h&gt; #define N...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru