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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2014, 20:34   #1
bloodkain
Новичок
Джуниор
 
Регистрация: 21.04.2014
Сообщений: 6
По умолчанию из стринг

Помогите переделать программу чтобы было без string а чар
нужно на компилятор турбо 3.0
условие к программе если надо
Даны сведения об игрушках (название, стоимость и возрастные границы ребенка, для которого предназначена игрушка). Вывести стоимость самой дорогой куклы.
Код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

struct toy
{
string name;//імя
float cost;//вартість
int from;//від
int to;//до
}t[50];

int main()
{
int j, i = 0, max_doll;
char key;
string char_max_doll;
do
{
cout << "Enter a name ";
cin >> t[i].name;
cout << "Enter the value ";
cin >> t[i].cost;
if (t[i].name == "doll" || t[i].name == "puppet" || t[i].name == "baby" || t[i].name == "poppet")
{
max_doll = t[i].cost;
char_max_doll = t[i].name;
}
cout << "Age limits\nfrom ";
cin >> t[i].from;
cout << "to ";
cin >> t[i].to;
cout << "Continue Y/N\n";
i++;
key = _getch();
} while (key=='y' || key=='Y');
cout << "\nmost expensive " << char_max_doll << " price " << max_doll;
_getch();
return 0;
}

Последний раз редактировалось Stilet; 22.04.2014 в 20:52.
bloodkain вне форума Ответить с цитированием
Старый 22.04.2014, 21:07   #2
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

ну так поменяй тип данных string на char
в чем проблема то?
alekopoko вне форума Ответить с цитированием
Старый 22.04.2014, 21:15   #3
bloodkain
Новичок
Джуниор
 
Регистрация: 21.04.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от alekopoko Посмотреть сообщение
ну так поменяй тип данных string на char
в чем проблема то?
тогда ошибка в этом рядке
if (t[i].name == "doll" || t[i].name == "puppet" || t[i].name == "baby" || t[i].name == "poppet")
bloodkain вне форума Ответить с цитированием
Старый 22.04.2014, 21:50   #4
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

так надо
Код:
 if(strcmp(t[i].name ,"baby")==0)
с char твой if не прокатит(ты меняешь типы данных у переменных) с чего ты взял что все остальное волшебным образом будет работать как раньше

p.s. я надеюсь ты не так написал ?
Код:
char name;

Последний раз редактировалось alekopoko; 22.04.2014 в 21:55.
alekopoko вне форума Ответить с цитированием
Старый 22.04.2014, 22:37   #5
bloodkain
Новичок
Джуниор
 
Регистрация: 21.04.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от alekopoko Посмотреть сообщение
так надо
Код:
 if(strcmp(t[i].name ,"baby")==0)
с char твой if не прокатит(ты меняешь типы данных у переменных) с чего ты взял что все остальное волшебным образом будет работать как раньше

p.s. я надеюсь ты не так написал ?
Код:
char name;
тоисть надо поменять везде на чар и поставить
Код:
 if(strcmp(t[i].name ,"baby")==0)
???

п.с.
bloodkain вне форума Ответить с цитированием
Старый 22.04.2014, 22:59   #6
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

ну и чего ты в меня вопросиками кидаешься?)
сделай ввод и вывод строчки(тип данных char)
alekopoko вне форума Ответить с цитированием
Старый 22.04.2014, 23:11   #7
bloodkain
Новичок
Джуниор
 
Регистрация: 21.04.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от alekopoko Посмотреть сообщение
ну и чего ты в меня вопросиками кидаешься?)
сделай ввод и вывод строчки(тип данных char)
тоисть????
где и как?
bloodkain вне форума Ответить с цитированием
Старый 22.04.2014, 23:35   #8
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

Цитата:
тоисть????
где и как?
ты так испугался, что я на секунду подумал что это не твоя программа, а программа, написанная одногруппником или преподавателем)
ну ладн показалось=)

новую программу создай с нуля.
Или ты так не умеешь?
строка(цепочка,последовательность) символов
ввод и вывод строчки типа данных char
тебе это надо для начала составить
а уже потом перейдем к твоему заданию


ПОДСКАЗКА: есть два варианта - либо использовать символьный массив,либо указатель на тип данных char
лучше указатель т.к. не надо следить за кол-вом введенных символов
и printf , scanf лучше использовать т.к. char это Си, а не Си++

Последний раз редактировалось alekopoko; 23.04.2014 в 00:17.
alekopoko вне форума Ответить с цитированием
Старый 23.04.2014, 18:13   #9
alekopoko
Форумчанин
 
Регистрация: 03.04.2013
Сообщений: 167
По умолчанию

вот так:
Код:
struct toy
{
char*name;//імя
float cost;//вартість
int from;//від
int to;//до
}t[50];


scanf("%s",&t[i].name);
if(strcmp((char*)&t[i].name ,"baby")==0)
и так еще можно:

Код:
struct toy
{
char name1[20];
float cost;//вартість
int from;//від
int to;//до
}t[50];


scanf("%s",t[i].name1);
if(strcmp(t[i].name1,"baby")==0)
alekopoko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стринг С++ dykee Помощь студентам 8 15.04.2014 00:16
стринг Casper098 Помощь студентам 1 28.11.2011 23:39
Стринг Casper098 Помощь студентам 0 21.11.2011 15:56
Стринг! Henkel Помощь студентам 2 14.12.2010 19:44
Стринг UnD)eaD)Snake Общие вопросы Delphi 5 08.10.2007 08:29