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

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

Войти
Регистрация
Восстановить пароль
 
Gelllius
2 / 2 / 0
Регистрация: 05.06.2013
Сообщений: 11
#1

Подсчёт слов в строке и вывод тех, которые встречаются более n раз - C++

05.06.2013, 18:21. Просмотров 521. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток. Прошу помощи в решении задачи. Собственно сама задача:

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

Проблема моя в том, что я не знаю как организовать пересчёт этих самых слов. и чтобы вывело точное количество. Пробовал через массив но что-то опять не клеится. вот мой код, совершенно не могу понять что сделать. Может поможет кто? Вроде не очень сложная задача, но вот что дальше я теряюсь)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
string str, slovo;
int s=0;
int mas[10][3];
string::size_type k=0,pos=0;
cout<<"vvedite stroku"<<endl;
getline(cin,str);
k=str.find(" ",pos)
while(k!=string::npos)
{
    slovo=str.substr(pos,k-pos)    
    scanf(slovo, mas[i]);
    slovo.erase(0,s.length)
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчёт слов в строке и вывод тех, которые встречаются более n раз (C++):

Найти все символы, которые встречаются в строке более двух раз - C++
Парни помогите нужно написать в C++ Builder &quot;Найти все символы, которые встречаются в строке более 2ух раз&quot; Должна быть посимвольная...

Вывести только те слова сообщения, которые встречаются в нем более n раз - C++
Нужно выполнить эту задчку используя только библиотеки string и iostream. Буду очень благодарен, если вам не трудно. Дано...

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

Поменять знаки тех элементов массива, которые встречаются в нем один раз - C++
поменять на противоположные знаки тех элементов массива,которые встречаются в массиве ровно 1 раз

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anmartex
...
1703 / 1196 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
05.06.2013, 20:24 #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
27
28
29
30
31
#include <iostream>
#include <sstream>
#include <string>
#include <map>
 
using namespace std;
 
int main()
{
   string text;
   cout << "input text: " << endl;
   getline(cin, text);
 
   stringstream ss;
   ss << text;
 
   string word;
   map<string, unsigned> base;
 
   while (ss >> word)
   {
      base[word]++;
   }
 
   for (map<string, unsigned>::iterator it = base.begin(); it != base.end(); ++it)
   {
      cout << it->first << " " << it->second << endl;
   }
 
   return 0;
}
Gelllius
2 / 2 / 0
Регистрация: 05.06.2013
Сообщений: 11
05.06.2013, 21:36  [ТС] #3
#include <iostream>
#include <sstream>
#include <string>
#include <map>

using namespace std;

int main()
{
string text;
cout << "input text: " << endl;
getline(cin, text);

stringstream ss;
ss << text;

string word;
map<string, unsigned> base;

while (ss >> word)
{
base[word]++;
}

for (map<string, unsigned>::iterator it = base.begin(); it != base.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}

return 0;
}
Спасибо большое. А можно этот код сделать как-нибудь попроще, а то я по большей части не понимаю значений того что там написано.)) просто я сейчас на начальной стадии изучения языка(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 21:36
Привет! Вот еще темы с ответами:

Оставить в строке только те символы, которые встречаются один раз - C++
Где ошибка??? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int...

Выбрать символы, которые встречаются в строке только один раз - C++
Из заданой символьной строки (Набирается с клавиатуры) выбрать, те символы, которые встречаются в ней только один раз и написать в том...

Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n) - C++
Помогите,пожалуйста,переделать с VBA на Си ,или же составить программу без всяких оптимизаций,просто,что бы работала. Вот задача :Найти все...

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


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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