Olá pessoal do scriptbrasil. Tenho de terminar um código em c++ e me falta um pequeno caminho até ter a resolução desa questão.
Trata-se de uma Cifra de César que possui um deslocamento. Um seguinte exemplo de como teria de ficar seria esse:
Se por exemplo temos o alfabeto
a b c d e f g h i j k l m n o p q r s t u v x w y z o deslocamento teria de ser o seguinte:
b d f h j...e assim por diante +1, +2, +3, +4, ...
Como fazer para terminar o código?
Eu consegui fazer até o ponto que c, d, e, f, g deslocam-se gradativamente...mas a e b permanecem sempre sem sofrer deslocamento.
Segue abaixo o código:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string entrada;
int count = 0, comprimento;
cout << "Digite sua cadeia de caracteres ou frase: \n";
getline(cin, entrada);
comprimento = (int)entrada.length();
for (count = 0; count < comprimento; count++)
{
if (isalpha(entrada[count]))
{
entrada[count] = tolower(entrada[count]);
for (int i = 0; i < 26; i++)
{
/*
if(entrada[count] == 'z')
entrada[count] = 'a';
else
entrada[count]++;
*/
entrada[count] += (count++);
if ((int)entrada[count] > (int)'z')
entrada[count] -= 26;
}
}
}
cout << "Resultado: \n" << entrada << endl;
}
Obrigado!!!