#include <iostream>
#include <cstring>
using namespace std;
class MyLittleStringBox
{
private:
int size;
char *stringBox;
public:
MyLittleStringBox(unsigned int size)
{
stringBox=new char[size];
this->size=size;
}
~MyLittleStringBox()
{
if(stringBox!=NULL) delete[] stringBox;
}
char *getString()
{
return stringBox;
}
int getSize()
{
return size;
}
void setString(char const *lilString, int size)
{
if(size<=this->size)
{
memset(stringBox, 0, this->size);
strncpy(stringBox, lilString, size);
}
return;
}
};
void printMyLittleString(MyLittleStringBox adorableString)
{
int i;
char *cuteString=adorableString.getString();
for(i=0;i<adorableString.getSize();i++)
cout<<cuteString[i];
cout<<endl;
}
int main()
{
MyLittleStringBox box(5);
box.setString("abcd", 4);
printMyLittleString(box);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjbGFzcyBNeUxpdHRsZVN0cmluZ0JveAp7CnByaXZhdGU6CglpbnQgc2l6ZTsKCWNoYXIgKnN0cmluZ0JveDsKcHVibGljOgoJTXlMaXR0bGVTdHJpbmdCb3godW5zaWduZWQgaW50IHNpemUpCgl7CgkJc3RyaW5nQm94PW5ldyBjaGFyW3NpemVdOwoJCXRoaXMtPnNpemU9c2l6ZTsKCX0KIAoJfk15TGl0dGxlU3RyaW5nQm94KCkKCXsKCQlpZihzdHJpbmdCb3ghPU5VTEwpIGRlbGV0ZVtdIHN0cmluZ0JveDsKCX0KCQoJY2hhciAqZ2V0U3RyaW5nKCkKCXsKCQlyZXR1cm4gc3RyaW5nQm94OwoJfQoJCglpbnQgZ2V0U2l6ZSgpCgl7CgkJcmV0dXJuIHNpemU7Cgl9CgkKCXZvaWQgc2V0U3RyaW5nKGNoYXIgY29uc3QgKmxpbFN0cmluZywgaW50IHNpemUpCgl7CgkJaWYoc2l6ZTw9dGhpcy0+c2l6ZSkKCQl7CgkJCW1lbXNldChzdHJpbmdCb3gsIDAsIHRoaXMtPnNpemUpOwoJCQlzdHJuY3B5KHN0cmluZ0JveCwgbGlsU3RyaW5nLCBzaXplKTsKCQl9CgkJcmV0dXJuOwoJfQp9OwogCnZvaWQgcHJpbnRNeUxpdHRsZVN0cmluZyhNeUxpdHRsZVN0cmluZ0JveCBhZG9yYWJsZVN0cmluZykKewoJaW50IGk7CgljaGFyICpjdXRlU3RyaW5nPWFkb3JhYmxlU3RyaW5nLmdldFN0cmluZygpOwoJZm9yKGk9MDtpPGFkb3JhYmxlU3RyaW5nLmdldFNpemUoKTtpKyspCgkJY291dDw8Y3V0ZVN0cmluZ1tpXTsKCWNvdXQ8PGVuZGw7Cn0KIAppbnQgbWFpbigpCnsKCU15TGl0dGxlU3RyaW5nQm94IGJveCg1KTsKCWJveC5zZXRTdHJpbmcoImFiY2QiLCA0KTsKCXByaW50TXlMaXR0bGVTdHJpbmcoYm94KTsKCXJldHVybiAwOwp9