Я исправил свою проблему проверки, но теперь я продолжаю получать только одну строку символов в качестве моего зашифрованного текста, и я не могу найти проблему. это, наверное, что-то маленькое, что я просто скучаю, но любая помощь приветствуется. сверху мое окно терминала, а снизу мой код.
~/caesar/ $ make caesar
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow caesar.c -lcrypt -lcs50 -lm -o caesar
~/caesar/ $ ./caesar 12
plaintext: "world, say hello!"
ciphertext: aaaaaaaaaaaaaaaaaaa
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(int argc, string argv[])
{
if(argc == 2)
{
int n = strlen(argv[1]);
int i = 0;
for(i = 0; i < n; i++)
{
if(!isdigit(argv[1][i]))
{
printf("Usage: ./caesar key\n");
return 1;
}
}
int key = atoi(argv[1]);
string text = get_string("plaintext: ");
printf("ciphertext: ");
int l = 0;
int t = strlen(text);
for(l = 0; l < t; l++)
{
if(isupper(text[i]))
{
printf("%c", (((text[i] - 'A') + key) % 26) + 'A');
}
else if(islower(text[i]))
{
printf("%c", (((text[i] - 'a') + key) % 26) + 'a');
}
else
{
printf("%c", text[i]);
}
}
}
else
{
printf("Usage: ./caesar key\n");
return 1;
}
printf("\n");
return 0;
}