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

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

Войти
Регистрация
Восстановить пароль
 
General Fire
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 18
#1

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

05.01.2014, 16:51. Просмотров 298. Ответов 8
Метки нет (Все метки)

Программка переписана из учебника и по ней есть несколько заданий, однако она не работает.
#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++
Дан текст.как будет выглядеть функция,которая показывает, однокоренное слово или нет ?(типа bool)

Описать процедуру сравнения двух слов - C++
описать процедуру сравнения двух слов Называйте темы информативно.

ошибка в программе - C++
1&gt;c:\users\1\documents\visual studio 2010\projects\иптьб\иптьб\орпим.cpp(1): fatal error C1083: Не удается открыть файл включение:...

Ошибка в программе - C++
Проблема такая - не создает файл, в который оно должно сохранить результати. Вначале когда ехе запускаеш надо английскими ввести &quot;no&quot; -...

ошибка в программе - C++
Пожогите. пожалуйста, решить проблему... Уже все перепробовал, но ошибка осталась #include &lt;iostream&gt; #include &lt;windows.h&gt; using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
5416 / 4812 / 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
5416 / 4812 / 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
5416 / 4812 / 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++
#include&lt;iostream.h&gt; void main () { int a=1, b=2, c; c=sum(a,b); cout&lt;&lt;c; } int sum (int x, int y) {return...

Ошибка в программе - C++
Программа считает U не от 0, хотя изначально U присвоен 0 #include&lt;locale.h&gt; #include&lt;conio.h&gt; #include&lt;time.h&gt; ...

Ошибка в программе - C++
В программе есть ошибка, подозрения падают на atanh так как в ошибке курсор там стоит, как можно сделать чтобы вычислялся обратный...

Ошибка в программе - C++
Помогите разобраться с программой где ошибка. Использовать рекурсию. За ранее спасибо. #include&lt;iostream.h&gt; float tn(float,...


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

Или воспользуйтесь поиском по форуму:
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     Ошибка в программе сравнения слов
Ответ Создать тему
Опции темы

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