Ich lerne grad C++ und bin grad bei den Strings im Buch kam ein Bespiel zur Caesar-Verschlüsslung habe alles im Code Verstanden bis auf eine Stelle und wollte Fragen ob einer von euch es mir erklären könnte
Der Code :
C++:
#include <iostream> #include <string>
usingnamespace std;
int main() { char c; cout << "Gib einen Buchstaben ein : "; cin >> c;
Ich versteh nicht welchen Wert 'A' überhaupt hat und warum wir 'A' abziehen also wie die Verschlüsslung funktioniert weiß ich ist ja nicht besonders schwer nur über die Stelle zerbrech ich mir den Kopf!
Die Zeichen A-Z liegen in ASCII (und allen anderen Zeichensätzen) direkt hintereinander, d.h. der Zahlenwert von 'B' ist eins höher als der von 'A' etc. Das bedeutet:
C++:
'A' - 'A' == 0 'B' - 'A' == 1 'C' - 'A' == 2
etc.
Entsprechend ist
C++:
'A' + 0 == 'A' 'A' + 1 == 'B' 'A' + 2 == 'C'
etc. So funktioniert weiter unten auch die Rückrechnung:
C++:
c='A'+i;
Wenn du es ganz genau wissen willst, könnte man auch einen Aufsatz über integral promotions verfassen; das mache ich aber nicht ohne Nachfrage. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra