Mam problem z zadaniem, mam napisać szyfr cesara czyli przesunięcie litery o n pozycji, z tym że muszę przyjąć, że za literą 'z' wypada litera 'a', zaś przed literą 'a' wypada litera 'z'. Z pomocą internetu napisałem program jak poniżej ale to jest standardowo, czyli zaczyna od się od 'a', i dalej jest 'b' etc. jak przerobić żeby po 'z' wypadało 'a' jak w treści? Poniżej program, dodam, że to są wciąż moje początki ;)
#include <iostream>
#include <cstdlib>
#include <fstream>
int main(int argc, char** argv) {
int n = atoi(argv[1]);
std::ifstream infile(argv[2]);
std::ofstream outfile(argv[3]);
char c;
bool notEof = true;
while (notEof) {
c = infile.get();
if (!infile.eof()) {
if ((c >= 'a') && (c <= 'z')) {
c = ((c - 'a') + n) % 26 + 'a';
} else if ((c >= 'A') && (c <= 'Z')) {
c = ((c - 'A') + n) % 26 + 'A';
}
outfile << c;
} else {
notEof = false;
}
}
infile.close();
outfile.close();
return 0;
}