#include <iostream>
#include <cstring>
struct stringy {
char * str;
int ct;
} ;
void set( stringy & st, char * s) ;
void show( const stringy & st, int count= 1 ) ;
void show( const char s[ ] , int count= 1 ) ;
using namespace std;
int main( ) {
stringy beany;
char testing[ ] = "Reality isn't what it used to be." ;
show( testing) ;
set( beany, testing) ;
cout << "beany.str " << beany.str << endl;
show( beany) ;
show( beany,2 ) ;
testing[ 0 ] = 'D' ;
testing[ 1 ] = 'u' ;
show( testing) ;
show( testing, 3 ) ;
show( "Done!" ) ;
return 0 ;
}
void set( stringy & st, char * s) {
st.ct = strlen ( s) ;
st.str = new char [ st.ct + 1 ] ;
strcpy ( st.str ,s) ;
}
void show( const stringy & st, int count) {
while ( count-- > 0 ) {
cout << st.ct << " -> " << st.str << endl;
}
}
void show( const char s[ ] , int count) {
while ( count-- > 0 ) {
cout << s << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnN0cnVjdCBzdHJpbmd5IHsKICAgIGNoYXIgKiBzdHI7CiAgICBpbnQgY3Q7Cn07Cgp2b2lkIHNldChzdHJpbmd5ICZzdCwgY2hhciAqcyk7CnZvaWQgc2hvdyhjb25zdCBzdHJpbmd5ICZzdCwgaW50IGNvdW50PTEpOwp2b2lkIHNob3coY29uc3QgY2hhciBzW10sIGludCBjb3VudD0xKTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7CiAgICBzdHJpbmd5IGJlYW55OwoKICAgIGNoYXIgdGVzdGluZ1tdID0gIlJlYWxpdHkgaXNuJ3Qgd2hhdCBpdCB1c2VkIHRvIGJlLiI7CgogICAgc2hvdyh0ZXN0aW5nKTsKCiAgICBzZXQoYmVhbnksIHRlc3RpbmcpOwogICAgY291dDw8ImJlYW55LnN0ciAiPDxiZWFueS5zdHI8PGVuZGw7CgogICAgc2hvdyhiZWFueSk7CgogICAgc2hvdyhiZWFueSwyKTsKCiAgICB0ZXN0aW5nWzBdID0gJ0QnOwogICAgdGVzdGluZ1sxXSA9ICd1JzsKCiAgICBzaG93KHRlc3RpbmcpOwogICAgc2hvdyh0ZXN0aW5nLCAzKTsKICAgIHNob3coIkRvbmUhIik7CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgc2V0KHN0cmluZ3kgJnN0LCBjaGFyICpzKXsKICAgIHN0LmN0ID0gc3RybGVuKHMpOwogICAgc3Quc3RyID0gbmV3IGNoYXJbc3QuY3QrMV07CiAgICBzdHJjcHkoc3Quc3RyLHMpOwp9Cgp2b2lkIHNob3coY29uc3Qgc3RyaW5neSAmc3QsIGludCBjb3VudCl7CiAgICB3aGlsZShjb3VudC0tID4gMCl7CiAgICAgICAgY291dCA8PCBzdC5jdCA8PCAiIC0+ICIgPDwgc3Quc3RyIDw8IGVuZGw7CiAgICB9Cn0KCnZvaWQgc2hvdyhjb25zdCBjaGFyIHNbXSwgaW50IGNvdW50KXsKICAgIHdoaWxlKGNvdW50LS0gPiAwKXsKICAgICAgICBjb3V0IDw8IHMgPDwgZW5kbDsKICAgIH0KfQ==