请问一下这道C语言编程题怎么做?

为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯
密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当
offset小于零时,表示向前偏移。

按照题目要求编写的用凯撒密码加密的C语言程序如下

#include<stdio.h>

int main(){

 char s[80];

 int offset,i;

 fgets(s,80,stdin);

 scanf("%d",&offset);

 for(i=0;s[i]!='\0';i++){

  if('A'<=s[i] && s[i]<='Z')

   if(offset>=0)

    s[i]='A'+(s[i]-'A'+offset)%26;

   else

    s[i]='A'+(s[i]-'A'+26+offset%26)%26;

  else if('a'<=s[i] && s[i]<='z')

   if(offset>=0)

    s[i]='a'+(s[i]-'a'+offset)%26;

   else

    s[i]='a'+(s[i]-'a'+26+offset%26)%26;

 }

 printf("%s\n", s);

 return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-16
#include<stdio.h>
int main()
{
char str[80];
int offset;
int i;
scanf("%s", str);
scanf("%d", &offset);
for(i = 0; str[i]; i++)
if(str[i] != ' ')
str[i] += offset;
printf("%s\n", str);
return 0;
}
相似回答