Salve avrei un esercizio che non riesco a risolvere, praticamente devo creare un algoritmo di cifratura che lavora in base alla posizione di una lettera nell'alfabeto, esempio la stringa "ciao", la c è la terza lettera dell'alfabeto, e mi serve che diventi a partire da z quindi dalla fine dell'alfabeto 3 posizioni indietro, quindi x. Ho buttato giù qualcosa qui di seguito, confido in una risposta, grazie in anticipo.
#include <iostream>
#include <string>
using namespace std;
void codifica(string, size_t);
char alfabeto[26] = {'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'};
int posizioni[26] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
int posizione = 0;
int main()
{
string testo;
cout << "Inserisci il testo: ";
cin >> testo;
size_t lunghezza = testo.size();
codifica(testo, lunghezza);
return 0;
}
void codifica(string testo, size_t lunghezza)
{
for (int i = 0; i < lunghezza; i++)
{
for (int j = 0; j < 26; j++)
{
if(testo[i] == alfabeto[j])
{
posizione = posizioni[j];
}
}
cout << alfabeto[27-posizione];
posizione = 0;
}
}