Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Caesar-Verschlüsslung Frage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.03.2012, 19:12 Uhr
~Chrom
Gast


Hey

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>

using namespace std;

int main() {
  char c;
  cout << "Gib einen Buchstaben ein : ";
  cin >> c;

  int i=c-'A';

  cout << endl << "Welcher Schluessel soll genutzt werden?" << endl;
  cout << "Eingabe : ";
  int chiffre;
  cin >> chiffre;

  i=i+chiffre;

  if(chiffre > 25) {
    i=i-26;
    }

  c='A'+i;

  cout << c << endl;

  return 0;
  }



Die 11.Zeile "int i=c-'A';"

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!

Danke im vorraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.03.2012, 20:58 Uhr
0xdeadbeef
Gott
(Operator)


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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: