Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
1

Инвертирование текста

22.05.2013, 20:45. Показов 1673. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть текст, например:
Beautiful
Explicit
Simple
Complex
Я хочу его инвентировать по вертикале сначало, т. е. должно получится:
Complex
Simple
Explicit
Beautiful
А потом по горизонтале, т. е. должно получится:
xelpmoC
elpmiS
и т. д.
вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
    ifstream cin("input.txt");
    //ofstream cout("output.txt");
    vector<string> v;
    long long int a,b,i,j;
    string str;
    while(getline(cin,str))
    {
        v.push_back(str);
    }
    for(i=v.size()-1;i>=0;i--)
    {
        reverse(v.end(), v.begin());
        cout<<v[i]<<endl;
    }
    return 0;
}
По вертикали у меня получилось инвентировать, подскажите как инвентировать по горизонтале???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2013, 20:45
Ответы с готовыми решениями:

инвертирование
Подскажите как инвертировать шестнадцатеричное число , но не всё , а первые 8-мь разрядов? Например...

Инвертирование строки
вот попробовал строку инвертировать, она инвертируется,но там еще мусор всякий,скажите как его...

Инвертирование строк
Надо все строки расположить в алфавитном порядке по убыванию и инвертировать каждую строку. С...

Инвертирование слов в строке
напишите пожалуйста программу которые выводить буквы наоборот например я написал super computer a а...

12
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
22.05.2013, 21:34 2
реверс для каждой строки
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
22.05.2013, 23:25  [ТС] 3
Croessmah, как выполнить реверс для каждой строки?
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.05.2013, 00:43 4
C++
1
2
3
4
5
6
7
void op(string& str)
{
    reverse(str.begin(), str.end());
}
...
reverse(v.begin(), v.end());
for_each(v.begin(), v.end(), op);
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
23.05.2013, 09:39  [ТС] 5
BumerangSP, Спасибо, но я честно говоря не понял как приминит Ваш код. Можете на моем примере сказать, куда и что мне нужно дописать??
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.05.2013, 10:50 6
Цитата Сообщение от NaikoN Посмотреть сообщение
C++
1
2
3
4
for(i=v.size()-1;i>=0;i--) {
   reverse(v.end(), v.begin());
   cout<<v[i]<<endl; 
}
C++
1
2
3
4
5
6
7
8
9
#include <iterator>
#include <algorithm>
 
// ...
 
for (vector<string>::const_reverse_iterator it = v.rbegin(); it != v.rend(); ++it) {
   reverse_copy(it->begin(), it->end(), ostream_iterator<char>(cout));
   cout << endl; 
}
1
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
23.05.2013, 11:56  [ТС] 7
gray_fox, Не работает, выдает ошибку "error: no match for 'operator!=' in 'it != std::vector<_Tp, _Alloc>::rend() [with _Tp = std::string, _Alloc = std::allocator<std::string>]()'".
P.S. библиотеки подключил.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.05.2013, 12:15 8
NaikoN, странно.
http://ideone.com/SlLJB5

Добавлено через 2 минуты
Описка, может - v.begin() вместо v.rbegin() - что-нибудь в этом духе...
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
23.05.2013, 12:43  [ТС] 9
gray_fox, MinGW выдавал ошибку, запустил в NetBeans IDE, все скомпилировалось без ошибок. Странно!!!!! Правда я не понимаю, что происходит внутри Вашего кода, но он работает, нету конструкции попроще? Но все равно большое человеческое спасибо.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
23.05.2013, 12:51 10
Цитата Сообщение от NaikoN Посмотреть сообщение
нету конструкции попроще?
Можно конечно не использовать итераторы и алгоритмы, я так уже привык просто) Попробуй
C++
1
2
3
4
5
6
for (std::size_t i = v.size(); i-- != 0; ) {
   for (std::size_t j = v[i].length(); j-- != 0; ) {
      cout << v[i][j];
   }
   cout << endl;
}
Тогда <iterator> и <algorithm> будут не нужны
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
23.05.2013, 13:51  [ТС] 11
gray_fox, Спасибо, так намного понятнее
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.05.2013, 16:26 12
NaikoN, вот на Вашем примере:
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 <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
void op(string& str)
{
    reverse(str.begin(), str.end());
}
 
int main()
{
    ifstream in("c:\\data.txt");
    vector<string> v;
    string str;
    while(!in.eof())
    {
        getline(in,str);
        v.push_back(str);
    }
    reverse(v.begin(), v.end());
    for_each(v.begin(), v.end(), op);
    for (int i=0; i<4; ++i)
        cout << v[i] <<'\n';
}
1
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
23.05.2013, 20:48  [ТС] 13
BumerangSP, спасибо
0
23.05.2013, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2013, 20:48
Помогаю со студенческими работами здесь

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

Инвертирование и циклический сдвиг
Задание: Если содержание принятого кода может быть представлено в виде 2 в степени n, то выполнить...

Инвертирование и циклический сдвиг
Если содержание принятого кода может быть представлено в виде 2 в степени n, то выполнить операцию...

Инвертирование содержимого файла
Здравствуйте! Скажите как модно реализовать инвертирование содержимого файла! Причем нужно...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru