Simple Verschluesselung



  • Hallo allerseits an diesem schönen Sonntag,

    ich sitze hier gerade über einem kleinen Verschlüsselungstool, und irgendwie komme ich nicht so recht voran. Die Idee ist einfach:

    Von der Eingabe soll zeichenweise eingelesen werden. Dann hat man einen Schlüssel, den man vorher eingibt, und alle eingelesenen Zeichen sollen dann damit komplementiert werden, etwa so:

    Der Inhalt der string-Variablen sei:  "key".
      Eingelesenes Zeichen | ausgegebenes Zeichen
      ---------------------+---------------------
         'a'                   |    'a' ^ 'k'
         'l'                   |    'l' ^ 'e'
         'l'                   |    'l' ^ 'y'
         'e'                   |    'e' ^ 'k'
         ' '                   |    ' ' ^ 'e'
    

    Habe nun Folgendes geschrieben, wobei ich zwar weiss, dass ich etwas übersehe, es aber irgendwie nich finde:

    int main(){
    char c('\n'); string key("key");
    while (cin.get(c)) {
      for (size_t i(0); i < key.size() ; i++) {
        if (i > (key.size()-1)) i = 0;
        char output(c^key[i]);
        cout << output << endl;
    
      }
    }
    

    Was halt das Problem ist wie schaffe ich es dass er das Schlüsselwort immer wieder durchläuft?

    Sonnige Grüße allerseits und Danke für die Hilfe im Voraus,

    Virluenz


  • Mod

    int main(){
    char c('\n'); string key("key");
    int i=0;
    while (cin.get(c)) {
        char output(c^key[i]);
        cout << output << endl;
        i += 1;
        i %= key.size();
      }
    }
    

    Ungetestet, sollte aber funktionieren.


Anmelden zum Antworten