Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- char* vizhiner(char* str, const char* key, bool mode = true, int alphaLength = 26)
- {
- char* origStr{ str };
- size_t keyLength{ strlen(key) };
- int keyPos{ 0 };
- while (*str)
- {
- //if (mode)
- //{
- // *str++ = ('A' + (*str + *(key + keyPos)) % alphaLength);
- //}
- //else
- //{
- // *str++ = ('A' + (*str + alphaLength - *(key + keyPos)) % alphaLength);
- //}
- *str++ = ('A' + (*str + (mode ? *(key + keyPos++) : alphaLength - *(key + keyPos++))) % alphaLength);
- //++keyPos;
- keyPos %= keyLength;
- }
- return origStr;
- }
- int main()
- {
- //std::cout << char('A' + (('T' + 'E') % 26)) << '\n';
- //std::cout << char('A' + ('X' + 26 - 'E') % 26) << '\n';
- /*const int alphaLength{ 10 };
- for (int y{ 0 }; y < alphaLength; ++y)
- {
- for (int x{ 0 }; x < alphaLength; ++x)
- {
- std::cout << char('A' + ((y + x) % alphaLength)) << ' ';
- }
- std::cout << '\n';
- }*/
- char str[]{ "ATTACKATDAWN" };
- char key[]{ "LEMON" };
- std::cout << vizhiner(str, key) << '\n';
- std::cout << vizhiner(str, key, false) << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement