2017-02-03 13 views
0

CS50の2週目に壁に当たった。私のコードは、ユーザにプレーンテキストを要求し、次の行にシンプルなサイファーを印刷することになっています。問題は、私のコードはスクランブリングではなくユーザの正確な入力を続けているということです。私のコードは以下の通りです。シンプルなCypherプログラムが機能しない(CS50)

注:私のコードのエラーは、それぞれのprintf関数の中のforループの可能性が低いです。

#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のテキストをスキップしていました。 if文の "== true"を削除する必要があります。

関連する問題