Потребовалось мне по делу написать обфускатор (амплуа такое амплуа), пусть и чисто символический, некоего конкретного кода, который не просто заменяет переменные на vNNN, а сохраняет их длину. Ну, я по-быстрому пишу
Hint: Функцию пришлось переписывать.
std::string obfuscate(const std::string & s) {
static bool init = false;
static char shuffle[256];
if (!init) {
for (int i = 0; i < 256; i++) shuffle[i] = i;
std::random_shuffle(shuffle + 'a', shuffle + 'z' + 1);
std::random_shuffle(shuffle + 'A', shuffle + 'Z' + 1);
init = true;
}
std::string ret;
for (unsigned i = 0; i < s.size(); i++)
ret += shuffle[(unsigned char)s[i]];
return ret;
}Угадайте, что получилось, с моим-то еврейским счастьем.Hint: Функцию пришлось переписывать.