[C++] Cesarchiffre

Hi.
Du kannst schon den ASCII-Wert nehmen und den Schlüssel hinzufügen. Wenn du jedoch zu 'z' 2 dazu zählst entsteht dadurch 'b'. Du musst also wieder auf das entsprechende Interval abbilden. Spätestens da musst du dann die Operationen unterschiedlich machen, je nach dem, ob es ein Gross- oder ein Kleinbuchstabe ist.
Dennoch verwendest du für meinen Geschmack zuviel "magic numbers" in deinem Code...
C:
char crypt(char c, int key)
{
    if(!isalpha(c))
        return c;
    char offset = isupper(c) ? 'A' : 'a';
    return ((c - offset + key) % 26 + offset);
}
Gruß
 
Zurück