Es ist ein einfacher Code, aber ich kann ein seltsames Ereignis nicht verstehen. Code:seltsame falsche char Verschlüsselung (ascii)
void Crittografia::CifraTesto(char text[]){
int i;
for (i=0;i<strlen(text);i++){
text[i]=text[i] + key;
if(text[i] > 'z'){
text[i]=text[i] - 26;
}
}
}
erhält die Funktion die Zeichenfolge hier eingegeben: It works.
In diesem Fall funktioniert es mit einer Taste von 5. "y" geändert in "d" korrekt.
Aber in diesem Fall: Doesn't work.
Mit einem Schlüssel von 7 ändert es "y" in "Ç" anstelle des korrekten "f", also führt anscheinend die Reihe nicht aus: "text [i] = text [i] - 26;"
Sie müssen lernen, wie Sie Text aus einem Konsolenfenster kopieren. Unter Windows-Betriebssystemen klicken Sie mit der rechten Maustaste auf die Titelleiste und wählen Sie Bearbeiten-> Markieren. Markieren Sie mit der Maus die zu kopierende Region und drücken Sie dann die Eingabetaste. Dadurch wird der markierte Text in die Zwischenablage kopiert, sodass er in Ihre Frage eingefügt werden kann. –
Eine [ASCII-Tabellenreferenz] (http://en.cppreference.com/w/c/language/ascii) könnte ein guter Anfang sein. Dann könnten Sie wissen warum z. 'someCharacteer - 26' ist vielleicht keine so gute Idee. –
Es gibt kein '::' in C, also ist deine Frage auch nicht "C". –