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

Нужен совет для решения задачи

31.05.2014, 11:46. Показов 973. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача. Написать программу которая читает последовательность слов с стандартного устройства ввода. И находит среди них повторяющихся..........

Я понятие не имею как сохранит целые слова а не отдельные символы. Если попробовать решит эту задачу принимая во внимание каждый символ в каждом слове, учитывая что при вводе количество слов может быт сколько угодно программа получится не для моего уровня

Как можно сохранит целые слова?

Эта задача в странице 234. Липпман "Вводной курс" Четвертое здание. 2012 год. До этого изучали циклы, массивы, вектор, стринг, операторы if, switch.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2014, 11:46
Ответы с готовыми решениями:

Нужен совет для решения задачки*(одномерные массивы)
Дана функция y=5sin(2x+1)+cos(x+1) на интервале от x1 до x2 с шагом h. Сформировать другой одномерный массив из элементов первой “впадины”...

Нужен совет по условию задачи.
Всем доброго дня. Занимаюсь по Дейтелу. в седьмой главе есть задача. Моя проблема в том что я не могу понять условие задачи. ...

Нужен совет для грамотного решения по организации 1С
Есть торговая организация. Три торговых точки. Первая точка - три рабочих места с УТ, одно с БП. Вторая, третья точки - по одному...

8
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
31.05.2014, 11:54
Цитата Сообщение от Altair42 Посмотреть сообщение
До этого изучали циклы, массивы, вектор, стринг
Ну вот. vector и string знаете:
C++
1
2
3
4
5
6
vector<string> vv;
string t;
while(cin>>t)// читаем очередное слово
{
    vv.push_back(t); // запихиваем его в вектор
}
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
31.05.2014, 11:57
Цитата Сообщение от Altair42 Посмотреть сообщение
До этого изучали циклы, массивы, вектор, стринг...
Заведи вектор, да добавляй в него свои слова-стринги...
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
31.05.2014, 12:07  [ТС]
Я об этом уже думал но string и vector сохраняет каждый символ а не целое слово. Потом не возможно будет сравнит слова. Ибо в памяти будет только составляющие слов. Так как можно ввести неограниченное количество слов любого размера очень сложно определит где начали и конец следующего слово чтоб организовать их по очереди и сравнит.

Для этого надо написать цикл чтоб проверял каждый символ пока не встретит пробел и сохранял их. Сохранит каждый символ до следующего пробела и до следующего.... это может продолжится вечно .

И что дальше? Я не знаю как сохранит целое слово. Допустим получили первое слово в виде нескольких элементов вектора. Как получит второе слово?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
31.05.2014, 12:09
Цитата Сообщение от Altair42 Посмотреть сообщение
о string сохраняет каждый символ
С чего бы это? На то она и string, чтобы хранить целую строку.
И cin>>t считывает как раз одно слово, пропуская пробелы.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
31.05.2014, 12:21  [ТС]
В принципе можно запомнит несколько стрингов и сравнит их и без вектора. Но это не возможно делать при вводе с консоли. Можно ввести неограниченное количество слов.

И не возможно создать переменную при вводе. А то можно было бы организовать неограниченный ввод данных и их проверку, очень легко.

Добавлено через 2 минуты
zss, вот именно. Оно читает все подряд. Но сохраняется отдельные символы.
пример.
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
int main()
{
    setlocale(LC_ALL,"Russian");
    std::string text;
    std::vector<char> vChar;
    std::cout << " Введите текст. " << std::endl;
    std::getline(std::cin,text);
    char s;
    std::cout << " Введите 4 буквы которых надо найти в тексте " << std::endl;
    while(std::cin >> s)
        vChar.push_back(s);
    
    int numChr1 = 0;
    for(std::vector<char>::size_type i = 0; i < vChar.size(); i ++)
    {
        for(std::string::size_type j = 0; j < text.size(); j++)     
        {
            if(vChar[i] == text[j])
                ++numChr1;
        }
        std::cout << "Число букв " << vChar[i] << " " << numChr1 << std::endl;
        numChr1 = 0;
    }
    
    getch();
    return 0;
 }
При вводе любого количество символов( букв, пробелов и все такое), слов, даже целого текста. Программа читает символы по одному.

Добавлено через 4 минуты
В принципе эта задача очень простая.
- объявит 10 разных стрингов.
- ввести с консоли 10 слов на каждый стринг.
- сравнивать стринги а не слова.

А что если придется ввести не 10 слов а 20? Переписать код?
0
36 / 36 / 27
Регистрация: 05.11.2013
Сообщений: 149
31.05.2014, 12:29
надо создавать не vector<char> , а vector<string>
0
62 / 43 / 20
Регистрация: 28.09.2013
Сообщений: 193
31.05.2014, 12:33
Altair42, вы указали,что читаете Липпмана,и я хочу вам сказать Вы очень невнимательно читаете
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
31.05.2014, 12:47  [ТС]
Hrollo, да я и создаю vector<string>

Цитата Сообщение от Tuma Посмотреть сообщение
Altair42, вы указали,что читаете Липпмана,и я хочу вам сказать Вы очень невнимательно читаете
В смысле? Что именно я пропустил?

Сам стринг сохраняет все что написано в консоли. Но сохраняет по буквам пример того следующий цикл.

C++
1
2
3
4
5
for(std::string::size_type j = 0; j < text.size(); j++)     
        {
            if(vChar[i] == text[j])
                ++numChr1;
        }
Тут при итерации j переходит не c слово к слову а с буквы на следующую. При сохранение стринга на вектор будет тоже самое.

Добавлено через 6 минут
Все разобрался. Спасибо всем. Стринг читает по буквам а вектор до пробела.

Добавлено через 33 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    setlocale(LC_ALL,"Russian");
    std::string text;
    std::vector<std::string> vtext;
   std::cout << " Введите несколько слов "<< std::endl;
   while(std::cin >> text)
       vtext.push_back(text);
       for(std::vector<std::string>::iterator iter = vtext.begin();
           iter < vtext.end(); iter++)
           std::cout << *iter << std::endl;
    getch();
    return 0;
 }
Добавлено через 1 минуту
Наверно надо отдохнут. С 8 утра за компом. Даже не поел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2014, 12:47
Помогаю со студенческими работами здесь

Нужен совет по подбору платы/платформы для решения
Приветствую всех! Подскажете, пожалуйста, какую платформу выбрать для такого решения. Нужна плата (возможно с модулями как на...

Pascal: программа для решения диофантового уравнения, нужен совет по реализации
Код практически написан, однако столкнулся с одной проблемой. Реализую решение через разложение в цепную дробь, на одной из стадии...

Нужен совет с решением задачи
Суть токова в xhtml есть 2 формы: Где вводится значение и кнопка &quot;ок&quot;. Надо чтоб,когда пользователь ввел значение в это поле и нажал...

Нужен совет по решению задачи
Суть задачи: Удалить заказы, сделанные на книги издательства МИР в последние месяцы. Я делаю так --ссылка удалена Но возникает...

Нужен совет по решению бух задачи
Необходимо реализовать возможность ведения учета товаров в разрезе организаций, мест хранения и партий товаров. Подразумевается, что для...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru