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

Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы. - C++

Восстановить пароль Регистрация
 
Saddiel
 Аватар для Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
01.04.2013, 06:03     Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы. #1
привет всем, помогите составить програмку:
Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 06:03     Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы.
Посмотрите здесь:

C++ Преобразовать каждое слово в строке, удалив из него все последующие вхождения первой буквы
C++ Дан текст на русском языке. Напечатать в алфавитном порядке все согласные буквы,которые входят только в одно слово
C++ Напечатать в алфавитном порядке все звонкие буквы которые входят в каждое слово
C++ Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по заданному правилу
Напечатать все слова, которые отличаются от последнего, но предварительно надо уничтожить из них все последующие вхождения первой буквы C++
C++ Дан текст. Преобразовать его по следующему правилу
Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» C++
C++ Удалить из слова предыдущие вхождения последней буквы
C++ Преобразовать каждое слово в строк, заменив в нем все предыдущие вхождения его последней буквы на символ «.»
ООП. Напечатать слова, отличные от последнего слова, предварительно преобразовав каждое из них по правилу C++
Преобразовать каждое слово в строке, удалив из него все вхождения первой буквы этого слова C++
Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1424 / 761 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
01.04.2013, 14:42     Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы. #2
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
#include <iostream>
#include <sstream>
#include <functional>
#include <algorithm>
#include <string>
 
int main() 
{
    setlocale (0, "Russian");
    
    using namespace std::placeholders;
    
    std::string str = "привет всем, помогите составить програмку:"
                " Дан текст. Напечатать его, преобразовав каждое слово по "
                " следующему правилу: удалить из слова все предыдушие вхождения последней буквы";
    std::istringstream iss(str);
    for (std::string word; iss>>word;)
    {
        const char del = *std::find_if(word.rbegin(), word.rend(), std::bind(isalpha, _1));
        for (std::string::size_type pos = 0; (pos = word.find(del, pos)) != std::string::npos; word.erase(pos, 1));
        std::cout<<word<<" ";
    }
    std::cout<<"\n\n\n";
    
    return 0;
}
Добавлено через 54 минуты
Или, если важно не пропускать пробелы:
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 <functional>
#include <vector>
#include <algorithm>
#include <string>
#include <boost/algorithm/string.hpp>
 
int main() 
{
    setlocale (0, "Russian");
    
    using namespace std::placeholders;
    
    std::string str = "     привет всем, помогите        составить програмку:"
                " Дан текст. Напечатать его, преобразовав каждое слово по "
                " следующему правилу: удалить из слова все предыдушие вхождения последней буквы";
    std::vector<std::string> words;
    boost::split(words, str, boost::algorithm::is_space());
    for (auto& s : words)
    {
        boost::erase_all(s, std::string() + *std::find_if(s.rbegin(), s.rend(), std::bind(isalpha, _1)));
        std::cout<<s<<" ";
    }
    std::cout<<"\n\n\n";
    
    return 0;
}
Yandex
Объявления
01.04.2013, 14:42     Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы.
Ответ Создать тему
Опции темы

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