简单的Cypher程序不起作用(CS50)

时间:2017-02-03 15:22:47

标签: cs50

在CS50的第2周,我碰壁了。我的代码应该提示用户输入明文,然后在下一行打印一个简单的密码。问题是,我的代码不断为用户打印确切的输入而不是加扰。我的代码如下。

注意:我的代码中的错误很可能在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]);
       }

    }


}

1 个答案:

答案 0 :(得分:0)

修正了它。 if语句语法错误,因此程序正在跳过密码文本。我需要删除if语句中的“== true”。