Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Cäsar-Verschlüssung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Cäsar-Verschlüssung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
N.S
Jungspund


Dabei seit: 29.01.2016
Beiträge: 16

Cäsar-Verschlüssung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Ich soll die Cäsar-Verschlüsselung mit einer zusätzlichen Verschiebung um den Index des Zeichens umsetzten..Das erste Zeichen soll also zusätzlich um eine Position verschoben werden, das zweite Zeichen zusätzlich um zwei Positionen usw...
hier ist meine Lösung. Ist es richtig? Ich bedanke mich.

cout << "kette[zaehler] + verschiebung + (zaehler +1))" <<endl;
cout<<static_cast<char>(kette[zaehler]+ verschiebung);
cout<<endl<<endl;

Meine Ideen:
#include <iostream>

using namespace std;

void caesar();

void caesar (string kette){

int laenge , verschiebung ;
laenge = kette.length();

cout<<" verschiebewert eingeben: ";
cin>>verschiebung;
for (int zaehler=0;zaehler<laenge;zaehler++)

{
cout << "kette[zaehler] + verschiebung + (zaehler +1))" <<endl;
cout<<static_cast<char>(kette[zaehler]+ verschiebung);
cout<<endl<<endl;
}


}


int main()
{
string eingabe;
cout<<"geben sie ein Wort ein das sie verschluesseln moechten: ";
cin>>eingabe;
cout<<"sie haben: "<<eingabe<<" eingegeben"<<endl;

caesar (eingabe);
return 0;
}
09.05.2016 14:33 N.S ist offline E-Mail an N.S senden Beiträge von N.S suchen Nehmen Sie N.S in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hast du das mal laufen lassen?
Nein, es ist nicht richtig, du machst immer noch eine monoalphabetische Substitution.

Die Verschiebung geht mit cout<<static_cast<char>(kette[zaehler]+ verschiebung+zaehler);.
Nach dem 'z' geht es jetzt aber mit {| weiter. Sollte da vielleicht ein 'a' kommen?

__________________
Syntax Highlighting fürs Board (Link)
10.05.2016 06:52 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
N.S
Jungspund


Dabei seit: 29.01.2016
Beiträge: 16

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen vielen Dank für die Hilfe, jetzt stimmt es.


{
int laenge, verschiebung;

//die Länge der ursprünglichen Zeichenkette ermitteln
laenge = kette.length();
cout << "Caesar-Verschluesselung" << endl;

//den Verschiebewert einlesen
cout << "Bitte geben Sie den Verschiebewert ein: ";
cin >> verschiebung;

//jedes Zeichen um den angegebenen Wert verschieben
for (int zaehler = 0; zaehler < laenge; zaehler++)
cout << static_cast<char>(kette[zaehler] + verschiebung + (zaehler + 1));
cout << endl << endl;
}
int main()
{
string eingabe;

//Die ursprüngliche Zeichenkette einlesen
cout << "Bitte geben Sie eine Zeichenkette ein (ohne Leerzeichen): ";
cin >> eingabe;
cout << "Die urspruengliche Zeichenkette ist: " << eingabe << endl << endl;

caesar(eingabe);

return 0;
}

nochmals ich danke dir
11.05.2016 20:48 N.S ist offline E-Mail an N.S senden Beiträge von N.S suchen Nehmen Sie N.S in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Cäsar-Verschlüssung