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

сравение переменных типа char - C++

Восстановить пароль Регистрация
 
heyDude
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 3
25.12.2011, 15:05     сравение переменных типа char #1
Доброго времени суток, у меня возникла проблема...
Нужно ввести название товара, и что бы на экран вывелась информация об этом товаре
C++
1
2
3
4
5
6
7
8
9
10
11
    printf ("Search: ");
    scanf ("%s",&search);
    index=0;
    while (index<8) {
        if (base[index].tovar==search) {
            printf("Tovar: %s ",base[index].tovar);
            printf("Magazin: %s ",base[index].magazin);
            printf("Cost: %d\n",base[index].cost);
        index++;
        }
    }
мне кажется тут дело в сравнении переменных (они везде char), но в чем именно дело не могу понять
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
25.12.2011, 15:08     сравение переменных типа char #2
Может все таки,
C
1
scanf ("%s",search);
?!
Ree.exe
56 / 56 / 4
Регистрация: 01.08.2011
Сообщений: 141
25.12.2011, 15:08     сравение переменных типа char #3
http://msdn.microsoft.com/en-US/libr...(v=VS.80).aspx вот тут посмотри.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
25.12.2011, 15:11     сравение переменных типа char #4
C++
1
if (base[index].tovar==search) {
я думаю надо использовать strcmp()
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.12.2011, 15:13     сравение переменных типа char #5
Цитата Сообщение от heyDude Посмотреть сообщение
if (base[index].tovar==search) {
Так делать нельзя, вы сравниваете указатели.

Добавлено через 36 секунд
Цитата Сообщение от heyDude Посмотреть сообщение
scanf ("%s",&search);
А здесь что вообще?
heyDude
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 3
25.12.2011, 15:35  [ТС]     сравение переменных типа char #6
C++
1
2
3
4
5
6
7
8
9
10
11
    printf ("Search: ");
    scanf("%s",&search);
    index=0;
    while (index<8) {
        if (!strcmp(base[index].tovar, search)) {
            printf("Tovar: %s ",base[index].tovar);
            printf("Magazin: %s ",base[index].magazin);
            printf("Cost: %d\n",base[index].cost);
        }
        index++;
    }
Так все работает. спасибо. и инкремент надо было не в if а в while записать.

"&" я точно не знаю почему)) нам так препод сказал... это вроде взятия адреса переменной и записи значения по адресу этой переменной... надо по подробней по этому поводу почитать. Просто я всегда так делал все работает и я воспринимаю это как должное.
Yandex
Объявления
25.12.2011, 15:35     сравение переменных типа char
Ответ Создать тему
Опции темы

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