저는 cs50의 시저 문제에 대해 덜 편한 버전으로 작업하려고 노력해 왔으며 완전한 초보자라는 말로이 질문을 앞에 쓰고 싶습니다.CS50 시저 - ASCII 문자 및 출력 형식
프로그램은 사용자에게 키와 일반 텍스트를 입력 한 다음 제공된 키를 사용하여 해당 텍스트를 암호화하도록되어 있습니다. 예를 들어, 2 키의 경우 "aba"는 "cdc"입니다.
두 가지를 제외하고 올바르게 실행되는 프로그램을 만들 수 있다고 생각합니다. 암호화 된 텍스트 또는 암호화 된 텍스트의 출력은 내 프로그램에서와 같이 출력되는 문자열 대신 "암호문 :"형식이어야합니다. 다른 중요한 문제는 입력 된 키가 26보다 큰 경우입니다. 여기서 출력에는 문자가 아닌 다른 원치 않는 기호가 포함됩니다.
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main (int argc, string argv [])
{
if (argc != 2)
{
printf ("Error. Instructions not followed.\n");
return 1;
}
int key = atoi(argv [1]);
printf ("%i\n", key);
printf("Plaintext:");
string plaintext = get_string();
int i = 0;
for (char c = 'A'; c <= 'Z'; c++)
{
i++;
}
for (int j = 0; j < strlen(plaintext); j++)
{
char ciphertext = ((plaintext[j]+key%26));
if (isupper (plaintext[j]) || islower (plaintext[j]))
{
printf("%c", ciphertext);
}
if (isalpha (plaintext [j]) == false)
{
printf("%c", (plaintext[j]));
}
}
printf("\n");
}
모든 도움을 주시면 감사하겠습니다. 고맙습니다.
C에는 문자열 유형이 없습니다. '문자열'이란 무엇입니까? –
첫 번째 for 루프는 아무 것도하지 않습니까? –
' "암호문 :"'?? 인쇄 할 코드는 어디에 있습니까? –