-2

スペースを適切に表示するのに苦労しています。以下は、印刷されたものの出力です。

./CaeserC 13[A
メッセージを 13[A スペースで暗号化する
メッセージを挿入してください:
こんにちは世界
あなたのメッセージは: Hello World
暗号化されたメッセージは次のとおりです:Uryybadbeyq

それはUryyb Jbeyqである必要があります

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

int main (int argc, string argv[])
{
    string kinp = argv[1];
    int k = atoi(argv[1]);
    printf("Encrypt message by %s spaces\n", kinp);
    printf("Please insert your message:\n");
    string p = GetString();
    int lettern;
    printf("Your message is: %s\n", p);
    printf("Your encrypted message is:");
    for (int i=0, n=strlen(p); i<n; i++)
        {  
            lettern=p[i];
            //printf("%i \n", lettern);
        }
    if (lettern==32)
    {
        printf("%c", ' ');
    }
    if (lettern>= 65 && lettern<=90)
    {
    for (int i=0, n=strlen(p); i<n; i++)
        {  
            printf("%c", ((p[i]+k-65)%26)+65);
        }
    }
    if (lettern>= 97 && lettern<=122)
    {
        for (int i=0, n=strlen(p); i<n; i++)
        {
            printf("%c", ((p[i]+k-97)%26)+97);
        }
    }

    printf("\n");
}
4

2 に答える 2

2
printf("Your encrypted message is:");
for (int i=0; p[i]; i++){
    if(isupper(p[i]))
        putchar((p[i]+k-'A')%26 +'A');
    else if(islower(p[i]))
        putchar((p[i]+k-'a')%26 +'a');
    else
        putchar(p[i]);
}
于 2014-11-01T08:05:52.360 に答える
0

文字がスペース (" ") であるかどうかを検出する単純な if ループを追加するだけです。これが制御された評価のためであると仮定するのが正しいかのように、彼らはスペースがシフトされることを望んでいません。

于 2014-11-01T15:35:11.997 に答える