С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322

Подсчитать количество одинаковых слов

07.09.2017, 14:37. Показов 5741. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
Посчитать и вывести ко-во одинаковых слов
    srand(time(0));
    char temp[100] = {}, Arrey[100] = {};
    char * path,*p;
    char r[12] = " ,./!?;:\"\'",*word;
    SetConsoleCP(1251);
    cin.getline(temp, 100, '\n');
    SetConsoleCP(866);
    path = strtok(temp, r);
    p = Arrey;
    int counter = 1, i = 0, m = 0;
    while (path != NULL)//пока есть слова
    {
 
        *(p + i) = *path;//копируем каждое слово с строку
        path = strtok(NULL, r);
        i++;
    }
    for (int h = 0; h < i; h++){
        counter = 1;
        for (int k = 0; k < i; k++){
            if (strcmp((p + h), (p + k)) == 0){//сравниваем слово
                counter++;
            }
        }
        if (counter > 1)
            cout << p+h<< counter;
    
    }
    system("pause");
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2017, 14:37
Ответы с готовыми решениями:

Вводится предложение. Подсчитать количество слов и подсчитать количество букв в самом длинном слове
Неправильно считает количество букв в наибольшем слове. #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; ...

Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове
Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в...

Создать список слов из файла и подсчитать количество повторения этих слов
Здравствуйте. Помогите написать такую программу: в файле храниться текст. Нужно составить список слов из этого текста и посчитать частоту...

5
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
07.09.2017, 14:50
Посчитать и вывести ко-во одинаковых слов
Первая идея, которая мне пришла в голову - можно использовать множества. Отсечешь все повторения множеством. Потом бежишь по множеству и сразу по массиву и считаешь количество слов в массиве, которые равны некоторому элементу множетства.
И не Arrey, а тогда уж Array.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
07.09.2017, 14:58  [ТС]
Volobuev Ilya, ех.. спасибо, я не совсем понимаю что вы имеете ввиду под словом множества
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
07.09.2017, 15:04
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
 
int main()
{
    const std::string str = "eniki beniki eli eli vareniki eniki";
    std::istringstream ist(str);
    std::vector<std::string> v {std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>()};
    std::sort(v.begin(), v.end());
    std::cout << v.end() - std::unique(v.begin(), v.end());
}
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
07.09.2017, 15:12
Может поможет:
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Одинаковые_слова
{
    class Program
    {
        public static void Main(string[] args)
        {
            string[] words = { "A", "B", "A", "K"};
            
            SortedSet<string> set1 = new SortedSet<string>();
            
            for (int i = 0; i < words.Length; i++)
            {
                set1.Add(words[i]);
            }
            
            foreach (string word in set1)
            {
                System.Console.WriteLine(String.Format("Слово {0} встречается {1} раз.", word, words.Count(x => x == word)));
            }
            
            Console.ReadKey();
        }
    }
}
Языки похожи, надеюсь поймете.

Добавлено через 47 секунд
Строка 13 - множество set1. По сути это набор неповторяющихся элементов. Доступ по индексу в множествах отсутствует.

Добавлено через 3 минуты
MrGluck, а можно прокомментировать Ваш код (строки: 11, 12, 14)?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
07.09.2017, 16:00
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
а можно прокомментировать Ваш код (строки: 11, 12, 14)?
11 - создаём строковый буфер, инициализируя его содержимым строки str
12 - создаём вектор строк типа std::string, при этом инициализируя его строками из буфера выше. То есть пока с этого буфера удалось считать слово (std::string), добавляем в вектор. Считывание идёт по аналогии считыванию с потока, то есть пробелы и переносы строк не записываются и служат разделителями.
14 - переносим все повторяющиеся элементы в конец и выводим на экран разницу между концом контейнера и итератором на первый неуникальный элемент. Подробности алгоритма unique: http://www.cplusplus.com/refer... hm/unique/

Добавлено через 1 минуту
Если вам нужно создать набор соответствий слово => сколько раз оно встречается, то это делается ещё проще через std::map

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <map>
#include <sstream>
#include <string>
 
int main()
{
    const std::string str = "eniki beniki eli eli vareniki eniki";
    std::istringstream ist(str);
    std::map<std::string, size_t> m;
    for (std::string s; ist >> s; ++m[s]);
    for (const auto &p : m)
        std::cout << p.first << " => " << p.second << std::endl;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2017, 16:00
Помогаю со студенческими работами здесь

Создать список из слов. Подсчитать количество слов, совпадающих с последним словом
создать список из слов. подсчитать количество слов, совпадающих с последним словом. Удалить все таки слова, оставив одно последнее.

Стек: создать список из слов, подсчитать количество слов, совпадающих с последним словом
Создать список из слов. подсчитать количество слов, совпадающих с последним словом. Удалить все таки слова, оставив одно последнее. ...

Строка, введенная пользователем, состоит из слов, разделенных запятой. Подсчитать и вывести на экран количество введенных слов
Задание: Строка, введенная пользователем, состоит из слов, разделенных запятой. Подсчитать и вывести на экран количество введенных слов. ...

Количество одинаковых слов в векторе
Итак, есть двумерный вектор в котором содержится десять векторов, в этих десяти векторах по три слова(&quot;по&quot;...

Строка: Подсчитать количество одинаковых строк массива
Может кто нибудь помочь. Дан массив строк. подсчитать количество одинаковых строк.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru