#include<iostream>
#include<string>
#include<array>
#include<locale>
using namespace std;
class endeMachine
{
public:
int findIndex(char letter)
{
int index = 0;
while (letter != alphabet[index])
{
index++;
}//end while letter test
return index;
}//findIndex
string subEncrypt(string clear)
{
string subString = clear;
for (int i = 0; i < clear.length(); i++)
{
subString[i] = substitution[findIndex(clear[i])];
}//end for
return subString;
}//subEncrypt
string transEncrypt(string clear)
{
string subString = clear;
for (int i = 0; i < clear.length(); i++)
{
subString[i] = alphabet[findIndex(clear[i]) + offset];
}//end for
return subString;
}//transEncrypt
private://---------------------------------------------------------
array<char, 26> alphabet = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
array<char, 26> substitution = { 'm','l','k','j','i','h','g','f','e','d','c','b','a','z','y','x','w','v','u','t','s','r','q','p','o','n' };
int offset = 3;
};//end endoMachine
int main()
{
endeMachine text;
string clear_text = { "Hello" };
cout << text.subEncrypt(clear_text) << endl;
cout << text.transEncrypt(clear_text) << endl;
cin >> clear_text;
}//end main
어디서 할 수 있습니다대문자와 소문자 문자열 암호화 및 암호 해독, 기본 암호 C++ 나는 결국 지점에 도착하려고이 프로그램에 따라서
- 암호화 최종 사용자가 입력 한 문자열
- 암호화를위한 대체 또는 변환 방법 중에서 선택하십시오.
- 이전에 암호화 된 항목을 암호 해독
- 암호화 방법 중 하나를 선택하십시오.
- 그러므로 모든 가능한 결과를 생성, 암호화의 방법을 모른 채 암호화 된 문자열을 해독
내 문제는 다음과 같습니다
입력 문자열이 대문자를 포함, 전체 프로그램의 종료를 다운. 내가 좋아하는 라인 (12)에 뭔가 할 그러나 경우 :
while (tolower(letter) != alphabet[index])
암호화 방법 모두 작업을하지만 결과에 "Hello"의 입력을, 원래 입력 단어의 엄격 소문자 버전을 반환 :
fibby
knoor
보다는 출력시
는 :
Fibby
Knoor
이 어떤 식 으로든, 내가 개별적으로 단어의 각 문자의 대소 문자를 확인해야하는, 그래서 때 아웃 시간을 제공한다는 것을 의미 put을 사용하면 암호화 된 문자열의 해당 문자를 대문자로 변환하여 화면에 출력 할 수 있습니다.
제발 도와주세요!
들여 쓰기 –
먼저 분류하세요된다 죄송합니다. 서식을 수정했습니다. 희망을 갖고 지금 나는 도움을받을 수 있습니다. @EdHeal – Clanton
귀하의 알파벳 대체 키 (귀하의 코드에서)는 소문자를 고려하는 것 같습니다 ... – Grantly