cäsar chiffre ... anfänger ->lehrer meckert vielleicht, wenn ich das nicht schaffe...



  • hallo liebe forenleutz ... ich habe nun auch c++ in der schule und wurde von meinem lehrer beauftragt einen script zu schreiben, der nach dem cäsar chiffre verfahren einen satz ver- und entschlüsselt ... (erst einmal muss ich den verschlüsselt bekommen) ... diesen script muss ich in den nächsten tagen auch noch abgeben oooh ne..

    na gut ... da ich also totaler anfänger bin, hab ich mir da was überlegt
    ich habe eine zeichenkette, die das klartextalphbet KTA darstellen soll:
    -------------
    char KTA[40]={'a','b','c',...}
    und einen schlüssel
    int schluessel=5
    ------------------------
    KTA AUSGABE:

    for (i=0;i<26;i++)
    {
    cout<< KTA[i];
    }
    ----------------------
    GTA AUSGABE (ausgabe des geheimtextalphabetes) :

    c=schluessel+26;
    for (i=0;i<c;i++)
    {
    cout<< KTA[i];
    }
    --------------------------
    Ausgabe:

    KTA: abcdefg....
    GTA: fghijklmn.....σ

    .... gut ... das war für mich schon sehr schwer hinzubekommen ... (nicht lachen)

    nun fordere ich den benutzer auf einen satz einzugeben
    cin>> satz;
    .... tja und dieser soll dann halt irgendwie als zeichenkette zerlegt werden und die buchstaben sollen halt demetsprechend nach dem schlüssel verändert werden. .... hat jemand hilfe für einen echten c++ kenner wie mich? 🙂



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • #include <string>
    using namespace std;
    
    ...
    
    string satz; // zeichenkette beliebiger laenge
    
    // lese von der tastatur bis zum zeilenende und
    // fuelle mit den gelesenen zeichen "satz"
    getline(cin,satz,'\n');
    
    for ( int i = 0; i < satz.size(); ++i )
      cout << satz[i]; // gebe zeichen an der stelle von i aus
    


  • cin liest die daten nur bis zum ersten vorkommenden leerzeichen, aus diesem grund solltest du getline(...) nehmen



  • Cäsar Chiffre wird z.B. hier behandelt:
    http://www.volkard.de/C++/Tutorial/Grundlagen/ (Einstiegsadresse)
    http://www.volkard.de/vcppkold/caesarchiffre.html (konkreter Link)


Anmelden zum Antworten