#include <iostream>
#include <cstring>
using namespace std;
//decode into the key
class Decode
{
public:
Decode(const char ch[])
{
count = 0;
memset(key, 0, 128);
Decode_helper(ch);
}
friend ostream& operator<<(ostream& o, Decode& m);
private:
int count;
char key[128];
void Decode_helper(const char str[]);
};
//pratice, only consider alphabet
void Decode::Decode_helper(const char str[])
{
if (!(str[0])) return;
for (int i = 0; i < 26; ++i)
{
if (str[0] == 'a' + i || str[0] == 'A' + i)
{
key[count] = 'a' + i;
++count;
Decode::Decode_helper(str + 1);
return;
}
}
}
//print
ostream& operator<<(ostream& o, Decode& m)
{
for (int i = 0; i < m.count; ++i)
o << m.key[i];
return o;
}
int main(int argc, char const *argv[])
{
char ch[128] = {0};
cout << "Please enter your key : " << endl;
cin >> ch;
Decode work(ch);
cout << work << endl;
}
[Pratice]递归形式的暴力破解。
最新推荐文章于 2024-03-25 19:22:27 发布
