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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2010, 13:30   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Печаль Как правильно объявить и определить функцию?

Подскажите,как определить функцию для того,что бы она копировала массив символов и сохраняла этот массив в куче через структурную переменную beany? И где использовать операцию delete?(в функции или в main'e)
Ниже представлен код и условие задания:

#include <cstdlib>
#include <iostream>
using namespace std;
#include <cstring> //dlya vizova funczii strlen(),strcpy()
struct stringy
{
char * str; //ukazivaet na stroku
int ct; //dlinna stroki(ne schitaya simvola '\0')
};

using namespace std;

int main()
{
stringy beany;
char testing[] = "Realnost'-ne to,chto nam viditsya.";
set(beany, testing); //pervim argumentom yavlaetsya ssilka,
//videlyaet prostranstvo dlya hranenia kopii
//testing, ispolzuet element tipa str
// strukturi beany kak ukazatel na noviy
//blok, kopiruet testing v noviy blok i
//sozdaet element ct struktury beany
show(beany);//pechataet element strokovogo tipa odin raz
show(beany,2);//pechataet element strokovogo tipa dvajdi
testing[0] = 'D';
testing[1] = 'u';
show(testing);//pechataet stroku testing 1in raz
show(testing,3);//pechataet troku testing 3 raza
show("Gotovo!");
return 0;
}

Завершите написание программы,создав соответствующие функции и прототипы.Обратите внимание,что в программе должны быть 2 функции show(), и каждая из них использует аргументы ,заданные по умолчанию.
Используйте спецификатор const при объявлении аргументов там, где это оправдано.Обратите также внимание на то,что функция set() должна использовать операцию new для выделения достаточного пространства памяти под хранение заданной строки.Используемые здесь методы аналогичны методам,применяемым при задании и реализации классов.(Возможно,вам придётся изменить имена файлов заголовков и удалить директиву using, что зависит от используемого компилятора.)



я попробовал решить но неполучается правильно определить функцию set(),возможно есть ещё ошибки:
#include <cstdlib>
#include <iostream>
#include <cstring>
struct stringy
{
char * str;
int ct;
};
const stringy & set(stringy & b,char tes);
void show(const stringy be,int n = 0);
void show(const char tes,int n = 0);

using namespace std;

int main(int argc, char *argv[])
{
stringy beany;
char testing[] = "Realnost'-ne to,chto nam viditsya.";
set(beany,testing);
show(beany);
show(beany,2);
testing[0] = 'D';
testing[1] = 'u';
show(testing);
show(testing,3);
show("Gotovo!");
system("PAUSE");
return EXIT_SUCCESS;
}
const stringy & set(stringy & b,char tes)
{
b.str = new char[strlen(tes)+1];
strcpy(b.str,tes);
return b
//delete b.str;
}
void show(const stringy be,int n = 0)
{
if (n==0) then
cout<<be.str;
if n>0 then
for(int i=0;i<n;i++)
cout<<be.str<<endl;
}
void show(const char tes,int n = 0)
{
int count = 0;
if (n==0) then
cout<<tes[i]<<endl;
if (n>0) then
while(n > count)
{
cout<<tes[i]<<endl;
count++;
}

}
-ushёl- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно использовать функцию ExtFloodFill. SkAndrew Общие вопросы Delphi 0 14.04.2010 14:05
как правильно написать функцию? -ushёl- Общие вопросы C/C++ 6 26.02.2010 20:11
Как правильно описать функцию? аукшщ Общие вопросы C/C++ 2 19.01.2009 11:37
Как лучше объявить функцию? Иллидан Общие вопросы C/C++ 1 20.05.2008 14:31
где правильно объявить переменной значение Caption WhitePoint Общие вопросы Delphi 6 09.06.2007 00:19