2017-02-03 16 views
0

На 2-й неделе CS50 и я ударил стену. Мой код должен вызывать пользователя для открытого текста, а затем печатать простой cypher на следующей строке. Проблема в том, что мой код продолжает печатать точный ввод для пользователя, а не скремблировать. Мой код ниже.Простая программа Cypher не работает (CS50)

Примечание: ошибка в моем коде, вероятно, будет отсутствовать в цикле for, внутри соответствующих функций printf.

#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]); 
     } 

    } 


} 

ответ

0

Исправлено. Синтаксис оператора if был неправильным, поэтому программа пропускала текст cypher. Мне нужно удалить «== true» из инструкции if.