Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
#1

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

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

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

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

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

Эта задача в странице 234. Липпман "Вводной курс" Четвертое здание. 2012 год. До этого изучали циклы, массивы, вектор, стринг, операторы if, switch.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 11:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужен совет для решения задачи (C++):

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

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

Нужны задачи для решения - C++
Здравствуйте. Если здесь есть студенты-программисты, то очень попрошу их сбросить сюда задания по С++, потому что все свои уже перерешал.

Нужны задачи для их решения - C++
Здравствуйте. Нужны задачи для закрепления изученного материала. Что интересует(с чем я могу работать(база)): "напечатать", ...

Составить программу для решения математической задачи (для любых допустимых значений углов и сторон) - C++
Здравствуйте.Я новичок в C++,у меня возникла проблема с задачей.Пожалуйста помогите.Вот условие: Составить универсальную (то есть не для...

Использование функция для решения задачи - C++
Добрый вечер, подскажите в чем ошибка в коде. #include "stdafx.h" #include <stdio.h> #include <time.h> #include <stdlib.h> int...

8
zss
Модератор
Эксперт С++
6702 / 6264 / 2089
Регистрация: 18.12.2011
Сообщений: 16,346
Завершенные тесты: 1
31.05.2014, 11:54 #2
Цитата Сообщение от Altair42 Посмотреть сообщение
До этого изучали циклы, массивы, вектор, стринг
Ну вот. vector и string знаете:
C++
1
2
3
4
5
6
vector<string> vv;
string t;
while(cin>>t)// читаем очередное слово
{
    vv.push_back(t); // запихиваем его в вектор
}
0
8-BITOV
541 / 484 / 87
Регистрация: 05.05.2014
Сообщений: 1,107
31.05.2014, 11:57 #3
Цитата Сообщение от Altair42 Посмотреть сообщение
До этого изучали циклы, массивы, вектор, стринг...
Заведи вектор, да добавляй в него свои слова-стринги...
0
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
31.05.2014, 12:07  [ТС] #4
Я об этом уже думал но string и vector сохраняет каждый символ а не целое слово. Потом не возможно будет сравнит слова. Ибо в памяти будет только составляющие слов. Так как можно ввести неограниченное количество слов любого размера очень сложно определит где начали и конец следующего слово чтоб организовать их по очереди и сравнит.

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

И что дальше? Я не знаю как сохранит целое слово. Допустим получили первое слово в виде нескольких элементов вектора. Как получит второе слово?
0
zss
Модератор
Эксперт С++
6702 / 6264 / 2089
Регистрация: 18.12.2011
Сообщений: 16,346
Завершенные тесты: 1
31.05.2014, 12:09 #5
Цитата Сообщение от Altair42 Посмотреть сообщение
о string сохраняет каждый символ
С чего бы это? На то она и string, чтобы хранить целую строку.
И cin>>t считывает как раз одно слово, пропуская пробелы.
0
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
31.05.2014, 12:21  [ТС] #6
В принципе можно запомнит несколько стрингов и сравнит их и без вектора. Но это не возможно делать при вводе с консоли. Можно ввести неограниченное количество слов.

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

Добавлено через 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
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
31.05.2014, 12:29 #7
надо создавать не vector<char> , а vector<string>
0
Tuma
60 / 41 / 18
Регистрация: 28.09.2013
Сообщений: 193
31.05.2014, 12:33 #8
Altair42, вы указали,что читаете Липпмана,и я хочу вам сказать Вы очень невнимательно читаете
0
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
31.05.2014, 12:47  [ТС] #9
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
31.05.2014, 12:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2014, 12:47
Привет! Вот еще темы с ответами:

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

Алгоритм для решения задачи по программированию - C++
Доброго времени суток всем. Прошу помощи в составлении алгоритма решении задачи: На ежедневную прогулку выходят 15 детей. Их строят в...

Нужен совет в выборе темы для курсовой по ООП. 2 курс - C++
Здравствуйте. Извиняюсь что пишу в основном разделе. Я только перешел на 2 курс. У нас новый препод, достаточно молодой, весь на...

Маленькие игры на Си++ для консолили(только псевдографика).(нужен совет) - C++
Доброго времени суток. Дело вот такое, сдавал я экзамен по Си, сдал очень плохо. Решил провести работу над ошибками. Но не могу найти...


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

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

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