lehrzeichen=?
-
moin das sind die neusten ansätze meines verschlüsselung programmes:
/* Autor :**** Programm: Verschlüsselung von texten */ #include <iostream> #include <ctype.h> int main() { char x[10]; char e[10]; char f; int a[10]; int y=0; cout << "Soll ein Text vrschlüsselt oder entschlüsselt werden? v oder e eingeben" << endl; cin >> f; if (f=='v') { //------------------------------------------------------------------------------ cout << "Bitte zu verschlüsselnen text eingeben " << endl; while(y!=10) { cin >> x[y]; //felde von x wird eingeeben a[y]=static_cast<int>(x[y]); //wert des feldes wird in zahl umgewandelt ++a[y]; //diese zahl wird um eins erhöt y=++y; //das nächste feld wird angesprochen } cout << "der text lautet" << endl; y=0; //das feld wird wieder auf 0 gesetzt //------------------------------------------------------------------------------ while(y!=10) { e[y]=static_cast<char>(a[y]); //der zahlenwert des feldes wird in char umgewandelt cout << e[y] ; //char wird ausgegeben //!!! e und x muss vom typ char sein und a vom typ int!!!!!!!!! y=++y; } //------------------------------------------------------------------------------ } else { //------------------------------------------------------------------------------ cout << "Bitte zu verschlüsselnen text eingeben " << endl; while(y!=10) { cin >> x[y]; //felde von x wird eingeeben a[y]=static_cast<int>(x[y]); //wert des feldes wird in zahl umgewandelt --a[y]; //diese zahl wird um eins erniedrigt y=++y; //das nächste feld wird angesprochen } cout << "der text lautet" << endl; y=0; //das feld wird wieder auf 0 gesetzt //------------------------------------------------------------------------------ while(y!=10) { e[y]=static_cast<char>(a[y]); //der zahlenwert des feldes wird in char umgewandelt cout << e[y] ; //char wird ausgegeben //!!! e und x muss vom typ char sein und a vom typ int!!!!!!!!! y=++y; } } int v; cin >> v; }stellt sich die frage wie ich leerzeichen verschlüssele?
und wie ich die feldanzahl automatisch der buchstabenanzahl anpasse.
weil immoment kann man ja nicht mehr als 10 buchstaben eingeben oder?
-
Hi,
Benutze am Besten std::string anstatt eines char arrays und dazu std::getline zum Einlesen.Tschau,
Cappo
-
Ja benutze std::string und wenn du Zeichenweise verschlüsselst, dann std::transform aus <algorithm>.
Ich versuchs mal freihand:std::string::value_type encode(std::string::value_type toEncode) { return toEncode + 1; } ... std::string test = "Text"; std::transform(test.begin(), test.end(), test.begin(), encode); ...oder so ählich
-
Idexe schrieb:
Ja benutze std::string und wenn du Zeichenweise verschlüsselst, dann std::transform aus <algorithm>.
Ich versuchs mal freihand:std::string::value_type encode(std::string::value_type toEncode) { return toEncode + 1; } ... std::string test = "Text"; std::transform(test.begin(), test.end(), test.begin(), encode); ...oder so ählich
ok die dinger mit den doppelten doppelpunkten habe ich schon öfter mal gesehen

wenn ich irgendwan gelernt habe was die machen werd ich schauen das ic eure tips beherzige
-
wenn ich irgendwan gelernt habe was die machen werd ich schauen das ic eure tips beherzige
Die doppelten Doppelpunkte kennzeichnen den sog. Scope-Operator. Mit Hilfe des Scope-Operators kann man kennzeichnen, dass man z.B. eine bestimmte Funktion/einen bestimmten Typ/ein bestimmtes Objekt. aus einem ganz bestimmten Bereich benutzen möchte.
Beispiel:
#include <iostream> #include <string> namespace my_scope { class string { public: string() { std::cout << "my_scope::string()\n"; } ~string() { std::cout << "my_scope::~string()\n"; } }; } int main() { std::string s1; // erzeuge ein Objekt s1 des Typs std::string bzw. besser gesagt // vom Typ string, der sich im scope std:: befindet. my_scope::string s2 // erzeuge ein Objekt vom Typ string aus dem Scope my_scope. string s3; // FEHLER: Welche Klasse string? aus dem Bereich my_scope oder aus std? }Grundsätzlich benutzt man Namensräume (namespaces), um den Zugriff auf globale Typen/Objekte/Funktionen/etc. "einzuschränken" bzw. genauer zu spezifizieren.
So, das war jetzt nur _ganz_ grob angerissen. Für weitere Informationen siehe z.B. hier nach.
Gruß Caipi