Я работаю над проблемой шифрования Цезаря для проблемы, но я столкнулся с незначительной проблемой. Всякий раз, когда значение шифрования получает больше ascii из 'z', я хочу, чтобы он возвращался к 'a', но я не могу понять, как это сделать. Вот код:Код шифрования Цезаря не работает должным образом C
#include <cs50.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, string argv[])
{
if(argc !=2 && !isdigit(argv[1]))
{
return 1;
}
//convert input to int and get the string
int k = atoi(argv[1]);
k=k%26;
//printf("%d" ,k);
//get he text
char *s;
s=GetString();
int i, n=strlen(s);
//checking each character
for(i=0;i<n;i++)
{
if(s[i]==' ')
{
s[i]=' ';
}
else
{
s[i]=s[i]+k;
}
printf("%c" ,s[i]);
}
}
Это довольно основной код. Любая помощь будет оценена.
P.S. вот пример с ключом 4.
input- Vinay Dawani
output- Zmre} He{erm
Что должно произойти с 'z' и' Z', когда ключ равен 4? –
Добро пожаловать в переполнение стека. Вскоре прочитайте страницу [О программе]. Есть много вопросов о реализации шифрования Цезаря на SO. Большинство из них покажут вам способы решения вашей проблемы. Вы действительно смотрите на них (некоторые из них). Не похоже, что вы пытались решить проблему вообще - вы просто знаете, что у вас это есть. Вы должны показать, что вы пробовали. (Кроме того, в какой-то момент вам придется решить, что делать с цифрами и пунктуацией. На данный момент вы относитесь к ним как к письмам, что, вероятно, не самый лучший выбор.) –
Ознакомиться с этим фрагментом: _http: //ideone.com/QwOl1s_ –