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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Uart + консольное приложение http://www.cyberforum.ru/cpp-beginners/thread258827.html
Здравствуйте, скажите как научить программу принимать и передавать данные по uart?
C++ Выборы На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и... http://www.cyberforum.ru/cpp-beginners/thread258810.html
строки в С++ C++
Здравствуйте! В строке, введенной пользователем, удвоить количество символов "А" вдвое.
C++ Как из даты вычесть дату?
Продолжаю рисовать Вселенную, тема http://www.cyberforum.ru/cpp-beginners/thread258054.html (хотя это, впрочем, неважно). Нужно, вычислить, сколько дней прошло с заранее заданной даты до вводимого пользователем дня. Попыталась представить, как будет выглядеть функция, производящая такое вычисление, стало не по себе. Может, там (в с++(crl,wfa)) есть какие-нибудь стандартные функции для этого....
C++ С++ В одномерном массиве, состоящем из n вещественных элементов, вычислить.. http://www.cyberforum.ru/cpp-beginners/thread258756.html
В одномерном массиве, состоящем из n вещественных элементов, вычислить: − количество элементов массива, меньших С; − сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. Сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом – все остальные.
C++ Поиск и замена символов в файле Добрый вечер(день)! Пытаюсь разобраться с задачей, есть файл в нем нужно найти слово и заменить на другое,замена может быть разной длины и сохранить это всё дело в новом файле с именем в формате дата_создания.тхт Знаю, что примерно надо рыть в сторону фстримов seekp , но не могу понять как оно работает :(, помогите пожалуйста. за ранее спасибо! подробнее

Показать сообщение отдельно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
18.03.2011, 00:58     Вывести только те слова сообщения, которые встречаются в нем более n раз
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
#include <iostream>
#include <string>
 
//-------------
 
struct Item
{
    std::string word;
    int occurences;
    Item* next;
 
    Item(const std::string& s)
        : word(s), occurences(1), next(NULL)
    {
    }
};
 
//-------------
 
Item* add(Item* pointerTo1stItem, const std::string& str)
{
    if(pointerTo1stItem == NULL) return new Item(str);
 
    Item* last;
    for(Item* item = pointerTo1stItem; item != NULL; item = item->next)
    {
        if(item->word == str)
        {
            ++item->occurences;
            return pointerTo1stItem;
        }
 
        last = item;
    }
 
    last->next = new Item(str);
 
    return pointerTo1stItem;
}
 
//------------
 
void cleanUp(Item* item)
{
    Item* next;
    while(item != NULL)
    {
        next = item->next;
        delete item;
        item = next;
    }
}
 
//-------------
 
int main()
{
    std::cout << "input sentence: ";
    std::string s;
    std::getline(std::cin, s, '.');
    s+= '.';
 
    const std::string delim = "\n\t,.!? ";
 
    std::string::size_type first = 0;
    std::string::size_type last = 0;
 
    Item* item = NULL;
 
    while(s[last] != '.' && (first = s.find_first_not_of(delim, last)) != std::string::npos)
    {
        last = s.find_first_of(delim, first);
        item = add(item, s.substr(first, last - first));
    }
 
    std::cout << "input n: ";
    int n;
    std::cin >> n;
 
    for(Item* p = item; p != NULL; p = p->next)
        if(p->occurences > n) std::cout << p->word << '\n';
 
    cleanUp(item);
 
    return 0;
}
 
Текущее время: 20:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru