Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2010, 18:26   #1
Chica Bond
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 31
По умолчанию компилятор ошибок не выдаёт, но прога не делает то что нужно...

Мой мирФотоВидеоБлог
black shadow на ответах Профи (575)
Открыт: 23 минуты назад, будет выставлен на голосование через 3 дня
помогите пожалуйста исправить код!! (С++)
ошибок компилятор не выдаёт, но тем не менее программа не делает то что нужно...
вот код:
Код:
#include <iostream>
int main()
{
struct word{
char w[30];
int n;
};
word mas[]=
{
{"tri",3},
{"cheture",4},
{"desat",10},
{"desati",10},
{"desatuy",10},
{"odinadcat",11},
{"dvenadcat",12},
{"trinadcat",13},
{"trinadcati",13},
{"trinadcatuy",13},
{"cheturnadcat",14}
};

char *now=new char[30];
now="desat";
puts(now);
for(int i=0; i<50; i++)
if(now==mas.w) printf("%d", mas.n);
return 0;
}
нужно чтобы при совпадении строки с частью массива типа char, программа выдавала соответствующий результат типа int...
подскажите что сделать.
заранее спасибо
Chica Bond вне форума Ответить с цитированием
Старый 02.05.2010, 22:13   #2
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Ну, во-первых, опиши структуру перед функцией main.
silent_1991 вне форума Ответить с цитированием
Старый 02.05.2010, 22:15   #3
Chica Bond
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от silent_1991 Посмотреть сообщение
Ну, во-первых, опиши структуру перед функцией main.
нет, расположение структуры роли не играет. в других прогах всё работает.
Chica Bond вне форума Ответить с цитированием
Старый 02.05.2010, 22:23   #4
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
#include <map>
#include <string>
#include <iostream>

int main(){
  std::map< const std::string, int > map;
  map.insert( std::make_pair( "olo", 5 ) );
  std::string tmp;
  std::cin >> tmp;
  if( map.find( tmp ) == map.end() )
    std::cout << "Нет такого\n";
  else
    std::cout << "А он таки равно: " << map.find( tmp )->second << '\n';
}
так оно красивше будет
А у вас ошибка тут:
Код:
now==mas.w
Указатели так не сравнивают( точнее их то сравнивают, но не тогда, когда думают, что они строка ).
Проще говоря: char* это вовсе не строка и сравнивать две строки с помощью указателей на них нужно специальной функцией:
Код:
#include <string.h>

int strcmp(const char *s1, const char *s2);
В случае с С++ это:
Код:
#include <cstring>

int std::strcmp(const char *s1, const char *s2);
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux

Последний раз редактировалось ozo; 02.05.2010 в 22:26.
ozo вне форума Ответить с цитированием
Старый 02.05.2010, 22:44   #5
Chica Bond
Пользователь
 
Регистрация: 15.03.2010
Сообщений: 31
По умолчанию

А у вас ошибка тут:
Код:


now==mas.w

ой.... точно)) там должно быть now==mas[i].w... но наверно не суть...

спасибо за помощь)) попробую так сделать)
Chica Bond вне форума Ответить с цитированием
Старый 02.05.2010, 22:53   #6
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

эмм, вообще-то нет, как убедитесь в этом, перечитайте моё сообщение еще раз, особенно его конец
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать. Что делает MS и не делает Delphi Влад12 Общие вопросы Delphi 8 05.05.2010 20:04
Что делает этот код? Alex_sim Общие вопросы C/C++ 10 03.03.2010 23:45
Что делает код AllForCS PHP 1 24.02.2010 00:50
Что делает эта прога StudentPolitech Общие вопросы C/C++ 1 25.03.2009 22:54
Что делает этот while do? Levhik Общие вопросы C/C++ 4 25.01.2009 17:27