Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
n3L
1 / 1 / 0
Регистрация: 25.10.2012
Сообщений: 13
1

Операция сравнения пошла не так, как хотелось бы

30.12.2012, 16:32. Просмотров 320. Ответов 2
Метки нет (Все метки)

Пользователь вводит значения, сохраняющиеся в класс Product; программа запрашивает слово для поиска и при совпадение только-что введенного слова и введенных в начале работы - выводит имеющуюся информацию.
Все бы хорошо, но ни strcmp, ни strcmp, ни обычное сравнивание не сработали. Хоть бы я использовал одно слово, одну буквы или даже цифру - оно пишет, что совпадений не найдено. Должно быть, проблема в этой 30-ой строке.
Как так? Что я сделал не так?
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <conio.h>
//#include <string.h>
#include <iostream.h>
class Product {char naimen[20]; float cena; 
public: Product (); char getnaim (); void show();};
char naim[20];
 
Product::Product () {
cout << "\nNaimenovanie: "; cin >> naimen; 
cout << "Cena: "; cin >> cena;
}
 
void Product::show() {
cout << "\nNaimenovanie: " << naimen; 
cout << "\nCena: " << cena;
}
 
char  Product::getnaim() {return naimen[20];}
 
void ponaimen (Product spis[], int n) 
{ 
     int z=0;
     cout << "Vvedite nazvanie tovara dlya poiska: ";
     cin >> naim; 
     system ("cls");
     for (int i=0;i<n;i++)
         {
              char naimbaza[20];
              naimbaza[20]=spis[i].getnaim();
         if (strcasecmp (naimbaza, naim)==0)
         {
                        if (z<1) cout << "Imeushiesya tovary: \n";
                        spis[i].show();
                        z++;
         }
         }
         if (z==0) cout << "Dannyy tovar otsutstvuet. ";
}
 
int main() 
{ Product *spis;
int n;
cout << "Vvedite kolichestvo tovarov (ne ispolzuyte probely pri zapolnenie strok): "; cin >> n;
spis=new Product [n];
system ("cls");
for (int i=0; i<n; i++) {
cout << "\n==================\n";
spis[i].show();
}
cout << "\n==================\n";
system ("pause"); system ("cls"); 
ponaimen(spis,n);
delete [] spis;
system ("pause");
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 16:32
Ответы с готовыми решениями:

Setprecision работает не так как хотелось бы
Как я понимаю функция setprecision определяет сколько знаков после точки должно выводиться. Но на...

Код не работает так, как хотелось бы
В книге есть задача с кодом: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

Функция работает не так как хотелось бы(
хочу попробовать сделать калькульятор на JS . При нажатии на кнопку '1' вызывается функция push() ,...

JTree оказался не так прост как хотелось бы
Описываю происходящее: По правой кнопке на CustomTree(extends JTree) вызывается компонент...

Помогите со скриптом на PHP. Он работает, но не так как хотелось бы
Помогите со скриптом на PHP. Он работает,но не так как хотелось бы. Я только учусь PHP. Вот...

2
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
30.12.2012, 16:37 2
неправильно строки приравнены.
Сделайте так:
C++
1
strcpy (naimbaza, spis[i].getnaim())
1
n3L
1 / 1 / 0
Регистрация: 25.10.2012
Сообщений: 13
30.12.2012, 17:34  [ТС] 3
Пишет, что второй аргумент не const char, а сделать его таким у меня не вышло.
Так как не удалось решить эту проблему честным путем, заменил все "символы" на "строки" - так и реализовал выполнение требуемой задачи.
Зато в следующий раз уже буду использовать strcpy.
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2012, 17:34

Операция сравнения
введите с клавиатуры a, b. Выведите на экран числа a, b с соответствующим знаком операции сравнения...

Операция сравнения переменной в integer
Хочу написать переводчик из десятичной системы счисления в двоичную. Для того, чтобы скрывать...

Неправильно выполняется операция сравнения
Программа изначально не видела русский язык, но с этим я, вроде как, разобрался. Дальше встала...


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

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

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