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

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

Войти
Регистрация
Восстановить пароль
 
airesjke
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 20
#1

Найти все слова, содержащие подстроку ‘рок’ - C++

19.11.2012, 09:29. Просмотров 815. Ответов 3
Метки нет (Все метки)

Дана строка, состоящая из нескольких слов, между соседними словами не менее
одного пробела, за последним словом- точка. Найти все слова содержащие подстроку
‘рок’.

Добавлено через 1 минуту
string
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 09:29     Найти все слова, содержащие подстроку ‘рок’
Посмотрите здесь:
C++ Найти все слова, содержащие подстроку
Найти все слова, содержащие латинские буквы (a, e, i, o, u) C++
C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз C++
C++ Напечатать все слова, содержащие по одной цифре
C++ Напечатать все слова содержащие по одной цифре
C++ Распечатать все слова, содержащие заданный символ
C++ Удалить все слова, содержащие указанную пользователем букву
Удалить все слова, содержащие указанную пользователем букву C++
Удалить все слова, содержащие нечетное количество согласных букв C++ C++
C++ Строки (вывести все слова, содержащие только латинские буквы)
Вывести все слова из файла, содержащие в себе слово red C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eugine
3 / 3 / 0
Регистрация: 10.11.2012
Сообщений: 63
19.11.2012, 10:02     Найти все слова, содержащие подстроку ‘рок’ #2
Посчитать их надо или как-то выделить?
Пaтрик
414 / 389 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
19.11.2012, 10:11     Найти все слова, содержащие подстроку ‘рок’ #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <algorithm>
 
int main()
{
    std::string str = "hi gitler.";
    std::string sub_str = "git"; 
    // На 'рок' сами замените. Т.к. могут возникнуть проблемы с кодировкой
    // взял англ. текст
    std::string buf(str);
    std::replace_if(buf.begin(), buf.end(), ispunct, ' ');
    std::istringstream stream(buf);
    std::string word;
    while (stream >> word)
        if (word.find(sub_str) != std::string::npos)
            std::cout << word << "\n";
}
DiffEreD
1428 / 765 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.11.2012, 14:47     Найти все слова, содержащие подстроку ‘рок’ #4
Предложу еще такой вариант STL решения данной задачи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    std::string str = "Дана строкарок, состоящая из нескольрокких слов, между рок соседними словами не менее" 
        " одного пробела, зарок последним роксловом - точка.";
    std::stringstream ss(str);
    std::cout<<"Слова, которые содержат подстроку 'рок':\n\n";
    std::copy_if(std::istream_iterator<std::string>(ss), std::istream_iterator<std::string>(), 
        std::ostream_iterator<std::string>(std::cout, "\n"),
        [](const std::string& s){if ( (s.find("рок") != string::npos) && s!= "рок")  return true; else return false;});
    system("pause");
    return 0;
}
Yandex
Объявления
19.11.2012, 14:47     Найти все слова, содержащие подстроку ‘рок’
Ответ Создать тему
Опции темы

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