|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.06.2010, 13:30 | #1 |
Форумчанин
Регистрация: 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++; } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как правильно использовать функцию 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 |