Страница 1 из 1
Количество вхождений каждого слова в текст
Добавлено: 02 ноя 2009, 18:33
DUXMAN
Задание: а) посчитать и вывести на экран количество вхождений каждого слова в текст, б) вывести 5 наиболее часто встречающихся слов.
Есть строка, разбил её на слова с помощью strtok. Дальше ступор, помогите плз.
Re: Количество вхождений каждого слова в текст
Добавлено: 03 ноя 2009, 15:19
Decoder
Стандартной библиотекой классов можно пользоваться?
Если по условию задани нет ограничений на использование библиотек С++, то это элементарно делается с помощью контейнера std::map. Тогда с помощью этого контейнера ты организуешь для каждого слова счётчик его вхождений в строку. Потом можешь отсортировать полученные слова по числу вхождений и взять первые пять слов из отсортированного списка.
Если не осилишь сам, пиши на
decoder@hotbox.ru
Re: Количество вхождений каждого слова в текст
Добавлено: 03 ноя 2009, 17:24
DUXMAN
нужно именно на Си. Пробовал через strcmp, но ничего толкового не вышло
Код: Выделить всё
for (i=0; i<nWords; ++i)
{
for (j=0; j<nWords; ++j)
{
if (i!=j && r==0 && strcmp(words[i],words[j])==0)
{
puts (words[i]);
r=1;
}
}
r=0;
}
например из строки "один два два один три один пять" будет выведено "один два два один один", как сделать чтобы это выглядело "один - 3 раза, два - 2 раза" не получается хоть убейте
Re: Количество вхождений каждого слова в текст
Добавлено: 03 ноя 2009, 18:51
WinMain
Тогда придётся сортировать слова прямо внутри строки. Сначала нужно отсортировать слова просто в лексическом порядке. А потом найти самую длинную последовательность одинаковых слов и переместить её в начало строки, дале расположить слова с меньшим количеством вхождений и т.д.
Я понимаю, что говорить и давать советы другим всегда легче, чем самому что-то делать. Но если возникнут проблемы с реализацией алгоритма, обращайся на
rychkov@inbox.ru
Re: Количество вхождений каждого слова в текст
Добавлено: 11 ноя 2009, 08:02
atavin-ta
Нафига сортировать? Двойным циклом и никакаких гвоздёв. Первый цикл по словам. А внём два последовательных. Первый ищет предыдущие вхождения . Если не найдено, то второй считает вхождения. Всё. А сортировка - это способ сделать вид, что ты решаешь другую задачу. Такие проги надо предлагать массаду, а не вопрошайкам.