Pytanie czemu s[i] + p daje jakieś dziwne wyniki.
Dla przykładu
s[i] = 'A' czyli 65
p (przesuniecie) = 3
czyli :
powinno być 65+3 = 68...a wychodzi 'A' + 3 = 187 ?
Widziałem już parę przykładów ale wolę po swojemu to napisać...
string szyfruj(string s,int p)
{
string wynik = "";
for (int i = 0; i < s.length(); ++i)
{
if (s[i] + p > 'z')
{
wynik += static_cast<int>(s[i]) + p - 58;
//cout << "\n" << static_cast<int>(s[i]) + p << " ";
}
else
wynik += static_cast<int>(s[i]) + p;
}
return wynik;
}