2017-02-03 6 views
0

In Woche 2 von CS50 und ich habe eine Wand getroffen. Mein Code soll einen Benutzer nach Klartext fragen und dann eine einfache Chiffre in der nächsten Zeile drucken. Das Problem ist, dass mein Code die exakte Eingabe für den Benutzer druckt und nicht verschlüsselt. Mein Code ist unten.Simple Cypher Programm funktioniert nicht (CS50)

Hinweis: Der Fehler in meinem Code ist wahrscheinlich in der for-Schleife, innerhalb der jeweiligen printf-Funktionen.

#include <stdio.h> 
#include <cs50.h> 
#include <stdlib.h> 
#include <string.h> 
#include <ctype.h> 

int main (int argc, string argv[]){ 
    if (argc != 2){ 
     printf("You must enter two arguments, the second being a single digit integer!\n"); 
     return 1; 
    } 

    int key = atoi(argv[1]); 

    printf("What do you want to encrpyt?"); 
    string s = get_string(); 


    for(int i=0; i < strlen(s); i++){ 

     if (isupper(s[i])==true){ 
     printf("%c",((s[i] + key))); 
     } 

     if (islower(s[i])==true){ 
     printf("%c",s[i] + key); 
     } 

     else { 
      printf("%c",s[i]); 
     } 

    } 


} 

Antwort

0

Fehler behoben. Die Syntax der if-Anweisung war falsch, daher übersprang das Programm den Chiffretext. Ich muss das "== wahr" aus der if-Anweisung löschen.