#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;
class One {
private:
string * text;
public:
One();
~One();
void setText(string value);
string uppercase();
string lowercase();
string inverted();
};
One::One() {
text = new string();
}
One::~One() {
delete text;
}
void One::setText(string value) {
*text = value;
}
string One::uppercase() {
string result(*this->text);
for(int i=0; i<result.size(); i++) {
char c = result[i];
c = toupper(c);
result[i] = c;
}
return result;
}
string One::lowercase() {
string result(*this->text);
for(int i=0; i<result.size(); i++) {
char c = result[i];
c = tolower(c);
result[i] = c;
}
return result;
}
string One::inverted() {
string result;
string temp(*this->text);
for(int i=temp.size()-1; i>=0; i--) {
result = result + temp.at(i);
}
return result;
}
int main() {
One one;
one.setText("Kleber Mota de Oliveira");
cout << "text:" << one.uppercase() << endl;
cout << "text:" << one.lowercase() << endl;
cout << "text:" << one.inverted() << endl;
return 1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3R5cGUuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIE9uZSB7CnByaXZhdGU6CiAgc3RyaW5nICogdGV4dDsKcHVibGljOgogIE9uZSgpOwogIH5PbmUoKTsKCiAgdm9pZCBzZXRUZXh0KHN0cmluZyB2YWx1ZSk7CgogIHN0cmluZyB1cHBlcmNhc2UoKTsKICBzdHJpbmcgbG93ZXJjYXNlKCk7CiAgc3RyaW5nIGludmVydGVkKCk7Cn07CgpPbmU6Ok9uZSgpIHsKICB0ZXh0ID0gbmV3IHN0cmluZygpOwp9CgpPbmU6On5PbmUoKSB7CiAgZGVsZXRlIHRleHQ7Cn0KCnZvaWQgT25lOjpzZXRUZXh0KHN0cmluZyB2YWx1ZSkgewogICp0ZXh0ID0gdmFsdWU7Cn0KCnN0cmluZyBPbmU6OnVwcGVyY2FzZSgpIHsKICBzdHJpbmcgcmVzdWx0KCp0aGlzLT50ZXh0KTsKCiAgZm9yKGludCBpPTA7IGk8cmVzdWx0LnNpemUoKTsgaSsrKSB7CiAgICBjaGFyIGMgPSByZXN1bHRbaV07CiAgICBjID0gdG91cHBlcihjKTsKICAgIHJlc3VsdFtpXSA9IGM7CiAgfQoKICByZXR1cm4gcmVzdWx0Owp9CgpzdHJpbmcgT25lOjpsb3dlcmNhc2UoKSB7CiAgc3RyaW5nIHJlc3VsdCgqdGhpcy0+dGV4dCk7CgogIGZvcihpbnQgaT0wOyBpPHJlc3VsdC5zaXplKCk7IGkrKykgewogICAgY2hhciBjID0gcmVzdWx0W2ldOwogICAgYyA9IHRvbG93ZXIoYyk7CiAgICByZXN1bHRbaV0gPSBjOwogIH0KCiAgcmV0dXJuIHJlc3VsdDsKfQoKc3RyaW5nIE9uZTo6aW52ZXJ0ZWQoKSB7CiAgc3RyaW5nIHJlc3VsdDsKCiAgc3RyaW5nIHRlbXAoKnRoaXMtPnRleHQpOwogIGZvcihpbnQgaT10ZW1wLnNpemUoKS0xOyBpPj0wOyBpLS0pIHsKICAgIHJlc3VsdCA9IHJlc3VsdCArIHRlbXAuYXQoaSk7CiAgfQoKICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpIHsKICBPbmUgb25lOwogIG9uZS5zZXRUZXh0KCJLbGViZXIgTW90YSBkZSBPbGl2ZWlyYSIpOwogIGNvdXQgPDwgInRleHQ6IiA8PCBvbmUudXBwZXJjYXNlKCkgPDwgZW5kbDsKICBjb3V0IDw8ICJ0ZXh0OiIgPDwgb25lLmxvd2VyY2FzZSgpIDw8IGVuZGw7CiAgY291dCA8PCAidGV4dDoiIDw8IG9uZS5pbnZlcnRlZCgpIDw8IGVuZGw7CiAgcmV0dXJuIDE7Cn0=