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

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

30.12.2012, 16:32. Просмотров 366. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

2
Afflicted
Обитатель форума
200 / 183 / 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
30.12.2012, 17:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2012, 17:34

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

Программа работает неправильно (не так, как хотелось бы)
Здравствуйте! Есть задача: &quot;Определите, можно ли вычеркнуть из данного массива одно число так,...

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

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

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


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

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

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