Ниже представлен каркас программы. Довершите написание программы, составив соответствующие функции и прототипы. Обратите внимание на то, что в программе должны быть две функции show(), каждая из них использует аргументы, заданные по умолчанию. Используйте спецификатор const там, где считаете нужным. Обратите также внимание на тот факт, что set() должна использовать new в целях выделения достаточного пространства памяти для хранения заданной строки. Используемые здесь методы аналогичны методам, применяемым при задании и реализации классов. (Возможно, вам придется поменять имена файлов заголсвков и удалить директивы using, что зависит от используемого компилятора.)
#include <iostream />
using namespace std;
#include <cstring /> // для вызова strlen(), strcpy()
struct stringy {
char * str; // указывает иа строку
int ct; // длина строки (не содержит '\0')
};
// прототипы set() , show() , and show() попадают сюда
int main ()
{
stringy beany;
char testing[] = "Reality isn't what wit used to be.";
set(beany, testing); // первым аргументом является ссылка,
// выделяет пространство для хранения копии testing,
// использует элемент str строки beany как указатель на
//новый блок, копирует testing в новый блок и присваивается
//значение элементу ct строки beany
show(beany); // печатает элемент типа строка один раз
show(beany, 2); // печатает элемент типа строка дважды
testing[0] = 'D';
testing[1] = 'u' ;
show(testing); // печатает сроку testing один раз
show(testing, 3) ; // печатает строку testing три раза
show("Done!");
return 0 ;
}
MAIN.CPP
#include <iostream.h>
#include <stdlib.h>
using namespace std;
#include <cstring>
struct stringy {
char * str;
int ct;
};
void set (stringy & struc, char tezt[]);
void show (stringy & sys, int n = 1);
void show (const char * str, int n = 1);
int main ()
{
stringy beany;
char testing[] = "Reality isn't what wit used to be.";
set(beany, testing);
show(beany);
show(beany, 2);
testing[0] = 'D';
testing[1] = 'u' ;
show(testing);
show(testing, 3) ;
show("Done!");
system("PAUSE");
return 0 ;
}
void set (stringy & struc, char tezt[])
{
struc.ct = strlen(tezt);
struc.str = new char[struc.ct+1];
strcpy (struc.str, tezt);
}
void show (stringy & sys, int n)
{
cout << "pechat' elementa tipa stroka : "<< n << " raz" << endl;
for ( int i = 0; i<n; i++)
cout << " i: " << sys.str << endl;
}
void show (const char * str, int n)
{
cout << "pechat' stroki TESTING : "<< n << " raz" << endl;
for ( int i = 0; i<n; i++)
cout << " i: " <<str << endl;
}
Комментариев нет:
Отправить комментарий