#include<iostream>
#include<cstring>
using namespace std;
class String
{
private:
char *s;
int size;
public:
String(const char *str = NULL); // constructor
// String(const String&);
~String() { delete [] s; }// destructor
void print() { cout << s << endl; }
void change(const char *); // Function to change
};
String::String(const char *str)
{
size = strlen(str);
s = new char[size+1];
strcpy(s, str);
}
void String::change(const char *str)
{
delete [] s;
size = strlen(str);
s = new char[size+1];
strcpy(s, str);
}
/* String::String(const String& old_str)
{
size = old_str.size;
s = new char[size+1];
strcpy(s, old_str.s);
}*/
int main()
{
String str1("GeeksQuiz");
String str2 = str1;
str1.print(); // what is printed ?
str2.print();
str2.change("GeeksforGeeks");
str1.print(); // what is printed now ?
// str2.print();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKY2xhc3MgU3RyaW5nCnsKcHJpdmF0ZToKICAgIGNoYXIgKnM7CiAgICBpbnQgc2l6ZTsKcHVibGljOgoKICAgIFN0cmluZyhjb25zdCBjaGFyICpzdHIgPSBOVUxMKTsgLy8gY29uc3RydWN0b3IKICAgIC8vIFN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgIH5TdHJpbmcoKSB7IGRlbGV0ZSBbXSBzOyAgfS8vIGRlc3RydWN0b3IKICAgIHZvaWQgcHJpbnQoKSB7IGNvdXQgPDwgcyA8PCBlbmRsOyB9CiAgICB2b2lkIGNoYW5nZShjb25zdCBjaGFyICopOyAgLy8gRnVuY3Rpb24gdG8gY2hhbmdlCn07CiAKU3RyaW5nOjpTdHJpbmcoY29uc3QgY2hhciAqc3RyKQp7CiAgICBzaXplID0gc3RybGVuKHN0cik7CiAgICBzID0gbmV3IGNoYXJbc2l6ZSsxXTsKICAgIHN0cmNweShzLCBzdHIpOwp9CiAKdm9pZCBTdHJpbmc6OmNoYW5nZShjb25zdCBjaGFyICpzdHIpCnsKICAgIGRlbGV0ZSBbXSBzOwogICAgc2l6ZSA9IHN0cmxlbihzdHIpOwogICAgcyA9IG5ldyBjaGFyW3NpemUrMV07CiAgICBzdHJjcHkocywgc3RyKTsKfQoKLyogU3RyaW5nOjpTdHJpbmcoY29uc3QgU3RyaW5nJiBvbGRfc3RyKQp7CiAgICBzaXplID0gb2xkX3N0ci5zaXplOwogICAgcyA9IG5ldyBjaGFyW3NpemUrMV07CiAgICBzdHJjcHkocywgb2xkX3N0ci5zKTsKfSovCmludCBtYWluKCkKewogICAgU3RyaW5nIHN0cjEoIkdlZWtzUXVpeiIpOwogICAgU3RyaW5nIHN0cjIgPSBzdHIxOwogCiAgICBzdHIxLnByaW50KCk7IC8vIHdoYXQgaXMgcHJpbnRlZCA/CiAgICBzdHIyLnByaW50KCk7CiAKICAgIHN0cjIuY2hhbmdlKCJHZWVrc2ZvckdlZWtzIik7CiAKICAgIHN0cjEucHJpbnQoKTsgLy8gd2hhdCBpcyBwcmludGVkIG5vdyA/CiAgIC8vIHN0cjIucHJpbnQoKTsKICAgIHJldHVybiAwOwp9