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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
#1

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

01.04.2013, 06:03. Просмотров 704. Ответов 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
1427 / 764 / 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     Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы.
Ответ Создать тему
Опции темы

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