Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> неправельная передача данных функции, Проблема в функции find_func 
V
    Опции темы
mr_Grig
Дата 18.1.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.1.2007
Где: Ваши мысли

Репутация: нет
Всего: нет



Здравствуйте господа!
У меня «Великий Облом»!
Прогу пишу на STL, и вот в чем облом:
У меня есть мап, с ключом "int".
Этот кляч содержит вектор, со значениями a,b,d.
Функцией find_func(s1,s2) проверяю разбитую строку “int b”, есть ли в мапе и в векторе такие элементы,…. И пишет что нету (No) !!!!
Хотя я их туда запихнул.
И что самое интересное в функции find_func, если вместо s и s1, подставить просто “int”, и “b”, все срабатывает и выводит Yes.

У меня предположение что я неправильно передаю переменную (адрес или ссылку) в функцию find_func… и оно не хочет работать.

Это сообщение отредактировал(а) mr_Grig - 19.1.2007, 01:28
PM MAIL   Вверх
Rockie
Дата 18.1.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



память выделил:
Код

s=new char;

память потерял:
Код

s=strtok(x," ");

здесь ты скопировал не строку
Код

strcpy(x,"int b");

сделай вместо
Код

x=new char;

Код

x = new char[80];

к примеру

p.s.: справа выше поля ответа есть кнопка Код




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
JackYF
Дата 18.1.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Не храни в контейнерах char*! STL по-умолчанию копирует адрес указателя, а не содержимое...
Воспользуйся классом std::string!

И пользуйся тегами кода (см. вверху)!


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
mr_Grig
Дата 18.1.2007, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.1.2007
Где: Ваши мысли

Репутация: нет
Всего: нет



Замену 
Код
x = new char[80];
 - я сделал, но это роли не сыграет
s=strtok(x," "); -> я разбиваю строку на элементы. За первый проход мы должны по идеи вырезать int, за второй b, из строки " int b ".
Попробовал сделать еще тупо присвоение -... работает. Вот так:
Код


    while (s!=NULL)
    {
        if (counter==counter_begin)
        { 
            s1="int";
            cout<<s1<<endl;
        }    
        else
        {
            s2="b";
            cout<<s2<<endl;
        }
        counter++;
        s=strtok(NULL," ");
    }


p1 = find_func(s1,s2);
if (p1!=0)
    cout<<"Yes"<<endl;
else
    cout<<"Error"<<endl;


P.S. > Но тупо не подходит  smile 
PM MAIL   Вверх
JackYF
Дата 18.1.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



mr_Grig, смотри мой пост еще раз smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
mr_Grig
Дата 18.1.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.1.2007
Где: Ваши мысли

Репутация: нет
Всего: нет



Посмотрел!
JackYF Спасибо сейчас буду проверять, придется много перелопатить.

Должен сказать, уже не раз использую как ключ – char*, и все работало.  smile 
По моему трабл не в этом.

Добавлено @ 21:35 
Если можно, -где найти хорошую доку п= подклассу stirng (базового класса basic_string)?
Чтоб время не тратить?

Это сообщение отредактировал(а) mr_Grig - 18.1.2007, 21:25
PM MAIL   Вверх
JackYF
Дата 19.1.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



www.cppreference.com

а вообще любые хелпы к IDE...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
mr_Grig
Дата 19.1.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.1.2007
Где: Ваши мысли

Репутация: нет
Всего: нет



Спасибо огромное всем! Задачу решил. 

P.S.: И в особенности thanks JackYF-y.
Сделал так как вы посоветовали, только без стрингов,… а создал свой класс. 
Сейчас буду разбираться с классом string, и его функциями. 
А вообще ради интереса, можно как-то замутить так чтоб ключами были чары, возможно я что-то провтыкал, но вроде уже так делал.

Это сообщение отредактировал(а) mr_Grig - 19.1.2007, 19:01
PM MAIL   Вверх
Rockie
Дата 19.1.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата(mr_Grig @  19.1.2007,  18:54 Найти цитируемый пост)
А вообще ради интереса, можно как-то замутить так чтоб ключями были чары

"ночами, чами, чами, чами, чами, чами, чами.." ©Zемфира 

Можно, хоть свои собственные объекты




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
mr_Grig
Дата 19.1.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.1.2007
Где: Ваши мысли

Репутация: нет
Всего: нет



Rockie, ну молодец – молодец даже Земфирочку процитировал, хватит умничать. 
Я уже сделал ключами объекты,… выше посты читай!

Это сообщение отредактировал(а) mr_Grig - 19.1.2007, 19:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.