#include <stdio.h>
#include <string.h>
#include <ctype.h>
void encrypt(char *theString, int shift) {
while (*theString) {
if (isalpha(*theString)) {
*theString += shift;
}
theString++;
}
}
int main(void) {
int shift;
int *ip;
ip = &shift;
char theString[80];
printf("Enter String: ");
fgets(theString, 80, stdin);
printf("Enter Number: ");
scanf("%d", &shift);
encrypt(theString,shift);
puts(theString);
return(0);
}
Bis hierhin, danke für die Hilfe.Caesar Cipher Zurück zu 'A'/'a'
Jetzt brauche ich Hilfe zurück zu 'A', wenn der Benutzer 'Z' eingibt, anstatt zu [(und für Kleinbuchstaben) zu gehen. Ich weiß, ich brauche einige if-Aussagen, nicht sicher welche. Danke für jede Hilfe.
Sie müssen den Ascii-Wert nach der Verschiebung überprüfen, es ist größer als 'Z', subtrahieren Sie 26 und Sie werden wieder umkehren. Entschlüsseln wird einfach das Gegenteil sein. Ich nehme auch an, dass der Verschiebungsbetrag nie größer als 26 sein wird für diesen –
Ihr Einzug macht mich traurig. – kay
@Kay Eine Zunahme der Einrückung kann nicht zur weltweiten Traurigkeit führen. Umgestaltet für Ihr Vergnügen! –