#include <iostream>
#include <string>
#include <cstring>
void swapStrings(std::string& s1, std::string& s2)
{
const int size = sizeof(std::string);
char buffer[size];
std::memcpy(buffer, &s1, size);
std::memcpy(&s1, &s2, size);
std::memcpy(&s2, buffer, size);
}
int main()
{
std::string s1{"String 1"};
std::string s2{"String 2"};
swapStrings(s1, s2);
std::cout << s1 << std::endl;
std::cout << s2 << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0cmluZz4KCnZvaWQgc3dhcFN0cmluZ3Moc3RkOjpzdHJpbmcmIHMxLCBzdGQ6OnN0cmluZyYgczIpCnsKICAgY29uc3QgaW50IHNpemUgPSBzaXplb2Yoc3RkOjpzdHJpbmcpOwogICBjaGFyIGJ1ZmZlcltzaXplXTsKICAgc3RkOjptZW1jcHkoYnVmZmVyLCAmczEsIHNpemUpOwogICBzdGQ6Om1lbWNweSgmczEsICZzMiwgc2l6ZSk7CiAgIHN0ZDo6bWVtY3B5KCZzMiwgYnVmZmVyLCBzaXplKTsKfQoKaW50IG1haW4oKQp7CiAgIHN0ZDo6c3RyaW5nIHMxeyJTdHJpbmcgMSJ9OwogICBzdGQ6OnN0cmluZyBzMnsiU3RyaW5nIDIifTsKICAgc3dhcFN0cmluZ3MoczEsIHMyKTsKICAgc3RkOjpjb3V0IDw8IHMxIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8IHMyIDw8IHN0ZDo6ZW5kbDsKfQo=