Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.03.2020
Сообщений: 4

Найти одинаковые по длине слова

10.03.2020, 21:03. Показов 1721. Ответов 3

Студворк — интернет-сервис помощи студентам
Всех приветствую, недавно начал изучать с++ и возникли проблемы в решении некоторых задач, сама задача звучит так: В тексте( пишется пользователем в консоле) четное количество слов нужно найти количество слов одинаковой длины, если кто-то может помочь не трудно ли вам сделать небольшие пометки, для изучения алгоритма ( слово это символы перед которыми есть пробел до и после, а одинаковой длинны количество символов у этих "слов" одинаково)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2020, 21:03
Ответы с готовыми решениями:

Привести (уменьшить) все слова случайной строки к одинаковой длине (длине наименьшего слова)
1)Запрограммировать работу с строчным типом string. 2) Обращение к элементам строке организовать с использованием итераторов. 3)...

Дано предложение. В нем только два слова одинаковые. Найти эти слова
Дано предложение. В нем только два слова одинаковые. Найти эти слова. Заранее спасибо

Найти одинаковые слова
Помогите написать програмку: дано две строковые переменные в них по несколько слов разделенных пробелами, как найти одинаковые слова из...

3
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
10.03.2020, 23:29
самое простое разделение слов в с++ - basic_stringstream

Добавлено через 1 минуту
Вот пример использования
Функция разбиения строки на отдельные слова
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
11.03.2020, 02:17
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
#include <iostream>
#include <vector>
#include <map>
 
using namespace std;
 
int main(){
    vector<string> v; //{"Find", "words", "with", "a", "flint", "length"};
    string S;
 
 
 
    map<unsigned, unsigned> m;
    unsigned len;
    map<unsigned,unsigned>::iterator found;
 
    while (cin >> S){
 
        v.push_back(S); //сохраняем слова в вектор только для того, чтобы потом можно их было показывать
        len = S.size();
        found = m.find(len); //ищем было ли слово одинаковое с длиной слова S
        if(found == m.cend())   //если слово с такой длиной не нашлось
            m.insert({len,1});  //то создаём элемент map: ключ длина слова, а значение количество повторений (сейчас одно повторение) 
        else
            m[len]++;           //если нашлось, то увеличиваем в значении количество повторений
    }
 
    //цикл для обхода map и вывода на экран числа повторений слов с одинаковыми длинами
    for(const auto& item : m){
        cout << "words with len " << item.first << " == " << item.second << ":\t"; //Вывод ключей и значений
        //цикл для вывода слов с найденной длиной
        for (const auto &i:v){
            if (item.first == i.size()) cout << i << '\t';
        }
        cout << '\n';
    }
 
}
Для завершения ввода
Ctrl+Z с последующим нажатием Enter в Windows
Ctrl+D в Linux

Если текст вводится со знаками препинания, то задание не очень корректно составлено, но это не особо важно. В таком случае нужно вводимые слова записывать в вектор, при этом фильтровать слова, отделяя их от знаков. И потом уже отталкиваться от созданного вектора слов. В общем, в том случае нужна будет очистка котлет от мух. Если же задание не предполагает ввода сложных текстов, то всё проще.
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
11.03.2020, 12: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
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
 
int main()
{
  string s="Find words with a flint length  d 1234",word;
  stringstream ss(s);
  vector<string> v;
  vector<int> m;
 
  while(ss>>word){
        v.push_back(word);
        m.push_back(word.length());
      }
  for(size_t i=0;i<m.size();i++){
         int c=0;
         for(size_t j=i+1;j<m.size();j++)
              if(m[i]==m[j] && m[j]!=0){
                  if(c++==0)cout<<v[i];
                  cout<<"  "<<v[j];
                  m[j]=0;
               }
         if(c!=0)
         cout<<"\n";
       }
  system("pause");
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2020, 12:10
Помогаю со студенческими работами здесь

Если две строки одинаковые по длине то вывести Yes иначе No
Пользователь вводит две строки если они одинаковые по длине то тогда программа выводит Yes иначе No

В текстовом файле найти и вывести одинаковые слова
Задание: В произвольном РУССКОМ тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и...

Выбрать из данной строки все слова, длина которых равна длине первого слова
Написать программу, выбирающую из данной строки все слова, длина которых равна длине первого слова.С++:cry::wall:

Показать все суффиксы слова S по возрастающей длине слова
Писать в С++. Вводится слово &quot;S&quot;. Показать все суффиксы слова &quot;S&quot; по возрастающей длина слова. Пример: S= alina; Rezultat: a na ...

Найти в тексте одинаковые слова и подсчитать число их повторений
int z,c,l; z=0; c=1; l=2; // int numWord - это всего. общее количество векторов for (z; z&lt;numWord; z++) { for (c;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru