Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Uart + консольное приложение https://www.cyberforum.ru/ cpp-beginners/ thread258827.html
Здравствуйте, скажите как научить программу принимать и передавать данные по uart?
C++ Выборы
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и...
C++ строки в С++ https://www.cyberforum.ru/ cpp-beginners/ thread258793.html
Здравствуйте! В строке, введенной пользователем, удвоить количество символов "А" вдвое.
C++ Как из даты вычесть дату? Продолжаю рисовать Вселенную, тема https://www.cyberforum.ru/cpp-beginners/thread258054.html (хотя это, впрочем, неважно). Нужно, вычислить, сколько дней прошло с заранее заданной даты до вводимого пользователем дня. Попыталась представить, как будет выглядеть функция, производящая такое вычисление, стало не по себе. Может, там (в с++(crl,wfa)) есть какие-нибудь стандартные функции для этого.... https://www.cyberforum.ru/ cpp-beginners/ thread258770.html
C++ С++ В одномерном массиве, состоящем из n вещественных элементов, вычислить..
В одномерном массиве, состоящем из n вещественных элементов, вычислить: − количество элементов массива, меньших С; − сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. Сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом – все остальные.
C++ Поиск и замена символов в файле https://www.cyberforum.ru/ cpp-beginners/ thread258753.html
Добрый вечер(день)! Пытаюсь разобраться с задачей, есть файл в нем нужно найти слово и заменить на другое,замена может быть разной длины и сохранить это всё дело в новом файле с именем в формате дата_создания.тхт Знаю, что примерно надо рыть в сторону фстримов seekp , но не могу понять как оно работает :(, помогите пожалуйста. за ранее спасибо!
C++ вычисления разности времен , введенных с клавиатуры Помогите написать программу , пожалуйста. Максимальная длина строк не менее 80 символов. При реализации программы необходимо использовать функции для обработки строк из библиотек stdlib.h и string.h: Заданы две строки, содержащие время в формате: HH:MM:SS. Определить разницу между этими временами. При вводе проверять корректность времени. Пример: 23:30:00 и 5:45:00... https://www.cyberforum.ru/ cpp-beginners/ thread258744.html C++ файлы доработать
Задание такое В существующем на диске файле заменить каждый символ первого наиболее короткого слова на «*». (Считать, что слова разделены одним или несколькими пробелами или символами новой строки ‘\n’. Файл создать с помощью текстового редактора) Вспомогательный файл не использовать. Я написал программу, но она работает корректно только если слова разделены одним пробелом. Будьте...
C++ Русские символы https://www.cyberforum.ru/ cpp-beginners/ thread258723.html
Подскажите пожалуйста как сделать правильный вывод русского алфавита, так как при выводе выдает иероглифы, есть задавать данные изначально, а не вводить с клавиатуры то все выводится нормально. #include "stdafx.h" #include <iostream> #include <string.h> #include <windows.h> using namespace std; int main()
C++ Не могу решить задание на структуру https://www.cyberforum.ru/ cpp-beginners/ thread258719.html
Помогите, пожалуйста!!! На С нужно решить задачу по структурам
C++ Подсчёт слов в строке
Помогите пожалуйста, необходимо найти количество повторяющихся слов в строке. Пример вывода в программе: Исходная строка: stroka overclocker stroka overclocker stroka Введите повторяющееся слово: stroka Повторов слова в строке: 3
C++ Чтение с файла https://www.cyberforum.ru/ cpp-beginners/ thread258699.html
Например у меня есть файл со следующим текстом: 4 0 (1) 1 1 (2) 0 2 2 (3) 1 3 4 3 (1) 2 Длина строки может быть разная. В первой строке - всегда 1 символ, его я запишу через: ifstream fin("input.txt"); fin>>a;
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
17.03.2011, 11:53 0

Вывести только те слова сообщения, которые встречаются в нем более n раз - C++ - Ответ 1459250

17.03.2011, 11:53. Показов 2808. Ответов 10
Метки (Все метки)

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/////////////////////////////////////////////////////////////////////////////////////////
//Дано осмысленное текствовое сообщение (т.е. алфавитно-цифровая информация, разделенная
//пробелами и знаками препинания, в конце которого ставится точка.
//
//Вывести только те слова сообщения, которые встречаются в нем более n раз. 
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <locale>
#include <set>
#include <sstream>
#include <string>
#include <windows.h> 
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string           T_str;
typedef std::set<T_str>       T_words_set;
typedef std::multiset<T_str>  T_words_multiset;
/////////////////////////////////////////////////////////////////////////////////////////
T_str  from_DOS(const T_str&  DOS_string)
{   
    char*  p_buf = new char[DOS_string.length() + 1];
    OemToCharA(DOS_string.c_str(), p_buf);
    T_str  res(p_buf);
    delete[] p_buf;
    return res;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  remove_puncts(T_str&  s)
{
    struct  T_is_rus_punct
    {
        bool  operator() (char  c)
        {
            return  std::ispunct(c, std::locale(""));
        }
    };
    std::replace_if(s.begin(), s.end(), T_is_rus_punct(), ' ');
}
/////////////////////////////////////////////////////////////////////////////////////////
T_words_set  get_words_with_count_greater
    (
        int           n, 
        const T_str&  s
    )
{   
    std::istringstream  ssin(s);
    T_words_multiset  words_multiset(
                                        (std::istream_iterator<T_str>(ssin)),
                                        (std::istream_iterator<T_str>())
                                    );
 
    struct T_count_is_less_eq_in
    {
        size_t                   n_;
        const T_words_multiset&  words_multiset_;    
        //-------------------------------------------------------------------------------
        T_count_is_less_eq_in
            (
                size_t                   n,
                const T_words_multiset&  words_multiset            
            )
            : n_               (n),
              words_multiset_  (words_multiset)
        {}
        //-------------------------------------------------------------------------------
        bool  operator() (T_words_multiset::value_type  words_multiset_elem)
        {
            return  words_multiset_.count(words_multiset_elem) <= n_;
        }
    };
 
    T_words_set  words_set_res;
 
    std::remove_copy_if(
                           words_multiset.begin(),
                           words_multiset.end(),
                           std::inserter(words_set_res, words_set_res.begin()),
                           T_count_is_less_eq_in(n, words_multiset)
                       );
 
    return  words_set_res;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите предложение:"
              << std::endl;
    
    T_str  DOS_s;
    getline(std::cin, DOS_s);
    T_str  s = from_DOS(DOS_s);
    remove_puncts(s);
 
    int  n = 0;
    do
    {
        std::cout << "n >= 0: ";
        std::cin >> n;
    }while(n < 0);        
    
    T_words_set  words_set = get_words_with_count_greater(n, s); 
    if(words_set.empty())
    {
        std::cout << "В заданном предложении нет слов, встречающихся более "
                  << n
                  << " раз."
                  << std::endl;
    }
    else
    {
        std::cout << "В заданном предложении более "
                  << n
                  << " раз встречаются следующие слова:"
                  << std::endl;
 
        std::copy(words_set.begin(), words_set.end(), 
                  std::ostream_iterator<T_str>(std::cout, "\n"));    
    }
}


Вернуться к обсуждению:
Вывести только те слова сообщения, которые встречаются в нем более n раз C++
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2011, 11:53
Готовые ответы и решения:

Вывести только те слова сообщения, которые встречаются в нем ровно один раз
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и...

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

Вывести только те слова сообщения, которые встречаются в тексте один раз
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и...

Вывести только те слова сообщения, которые содержат не более чем n букв
Можете помочь написать программу? Желательно просто и используя using namespace std; Я не сильно...

10
17.03.2011, 11:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2011, 11:53
Помогаю со студенческими работами здесь

Вывести только те слова сообщения, которые содержат не более чем n букв
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются...

Дана символьная строка. Вывести на экран только те символы, которые встречаются в ней более трех раз, для каждого из эти
мне нужно срочно!!!! помоги чем сможете. С++ Добавлено через 19 секунд Вот задание Дана...

Выбрать из текста только те символы, которые встречаются в нем только один раз
Здравствуйте, помогите пожалуйста написать программу:) Условие. Дана строка, содержащая текст на...

Выбрать из файла те символы, которые встречаются в нем только один раз
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru