Форум программистов, компьютерный форум CyberForum.ru

Ошибка в программе сравнения слов - C++

Восстановить пароль Регистрация
 
General Fire
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 18
05.01.2014, 16:51     Ошибка в программе сравнения слов #1
Программка переписана из учебника и по ней есть несколько заданий, однако она не работает.
#include"std_lib_facilities.h" можно заменить на
C++
1
2
3
4
5
6
7
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
inline void keep_window_open() {char ch;cin>>ch;}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include"std_lib_facilities.h"
 
 
int main()
{
   int numbword = 0;
   string prev = " ";
   string cur;
   while(cin>>cur){
                   numbword++;
                   
                              if(cur==prev){
                                           
                                            cout << "numer slova" << numbword 
                                            << "\npovtorennoe:" << cur;
                                             prev=cur;
                                         }      
                                         else cout<< "nepovtor";           
                   }
   keep_window_open();
   return 0;
}
Беда в том что слова просто не сравниваются.Если бы это били не строки, а к примеру int, то все ок(проверил).
Спасайте)Или строки вообще сравнивать нельзя?Однако в учебнике такой пример.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 16:51     Ошибка в программе сравнения слов
Посмотрите здесь:

C++ Ошибка в программе
C++ ошибка в программе
C++ 1 ошибка в программе
ошибка в программе C++
C++ Описать процедуру сравнения двух слов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 17:04     Ошибка в программе сравнения слов #2
Цитата Сообщение от General Fire Посмотреть сообщение
Беда в том что слова просто не сравниваются.
С пробелом сравнение (string prev = " ")? cin >> пробелы пропускает.
General Fire
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 18
05.01.2014, 17:29  [ТС]     Ошибка в программе сравнения слов #3
Цитата Сообщение от alsav22 Посмотреть сообщение
С пробелом сравнение (string prev = " ")? cin >> пробелы пропускает.

Это как начально присваевание, первое слово он в любом случае отмечает как "неповтор".Но по идеи последующие слова он должен сравнивать, а как-то нитак(

Добавлено через 12 минут
Т.е. пробел можно и не присваивать, но опять же учебник...(не знаю как редактировать сообщения)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 17:31     Ошибка в программе сравнения слов #4
Цитата Сообщение от General Fire Посмотреть сообщение
Но по идеи
По идее, код никогода не зайдёт в if(), потому что cin >> никогда не считает пробел, потому что:
Цитата Сообщение от alsav22 Посмотреть сообщение
cin >> пробелы пропускает.
General Fire
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 18
05.01.2014, 17:39  [ТС]     Ошибка в программе сравнения слов #5
но ведь не вводятся пробелы.Просто вводится к примеру буква, затем еще одна и если они одинаковы.Я не догоняю зачем пробелы.Вводится не текст, а слово.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 18:55     Ошибка в программе сравнения слов #6
Цитата Сообщение от General Fire Посмотреть сообщение
Я не догоняю зачем пробелы.
И я не догоняю, зачем введённое сравнивается с пробелом?
C++
1
string prev = " ";
В prev что? Строка с пробелом. Потом в коде:
C++
1
if(cur==prev)
Введёное в cur с чем сравнивается? Правильно, со строкой с пробелом.
General Fire
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 18
05.01.2014, 19:19  [ТС]     Ошибка в программе сравнения слов #7
Первый раз да, но затем слова будут сравниваться друг с другом.
Первый раз как-бы пробел это типо не слово вообще.
Потом сравнение слов не происходит, вот в чем беда.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 23:47     Ошибка в программе сравнения слов #8
Цитата Сообщение от General Fire Посмотреть сообщение
Потом сравнение слов не происходит, вот в чем беда.
Беда в другом... От темы отписался.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2014, 23:59     Ошибка в программе сравнения слов
Еще ссылки по теме:

C++ Сравнения слов в двух строках
C++ Ошибка в программе
Функция сравнения однокоренных слов C++

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

Или воспользуйтесь поиском по форуму:
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
05.01.2014, 23:59     Ошибка в программе сравнения слов #9
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
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    int numbword = 0;
    string prev = " ";
    string cur;
    while (cin >> cur)
    {
        numbword++;
        if (cur == prev)
        {
            cout << "numer slova = " << numbword << endl << "povtorennoe: " << cur << endl;
            prev = cur;
        }
        else if (prev != " ")
        {
            cout << "nepovtor" << endl;
            prev = cur;
        }
        else
            prev = cur;
    }
    return 0;
}
Yandex
Объявления
05.01.2014, 23:59     Ошибка в программе сравнения слов
Ответ Создать тему
Опции темы

Текущее время: 07:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru