我正在用c ++创建一个Caesar Cipher,我无法弄清楚如何增加一个字母.
我需要每次将字母增加1并返回字母表中的下一个字母.像下面这样添加1 'a'并返回'b'.
char letter[] = "a";
cout << letter[0] +1;
Run Code Online (Sandbox Code Playgroud) 我在c ++中有一个大数字存储为精确的double值(假设输入'n'是75):2.4891e + 109
有没有办法将其转换为字符串或每个数字的数组?
到目前为止,这是我的代码,尽管它与问题并不完全相关:
int main(){
double n = 0;
cout << "Giz a number: ";
cin >> n;
double val = 1;
for(double i = 1; i <= n; i++){
val = val * i;
}
//Convert val to string/array here?
}
Run Code Online (Sandbox Code Playgroud) 我早些时候在这里并且有一只手添加到字符ascii引用以增加每个字母上的密码移位.但是我不知道如何解决字符高于'z'的问题.
有人可以给我一个暗示,当角色到达字母表的末尾时如何回绕.当然,我不希望有人为我做我的工作.
char decrypt(char letter)
{
int increment = 9;
if(letter == ' ')
{
return letter;
}
letter += increment;
return letter;
}
int main()
{
char message[446]; int i = 0; char space = ' ';
ifstream in("encryptedText.txt");
if(in.getline(message, 446))
{
while(message[i])
{
cout << decrypt(tolower(message[i])) << endl;
i++;
}
}
else
{cout << "Can't read file" << endl;}
cout << endl;
system("pause");
}
Run Code Online (Sandbox Code Playgroud)