C语言编程问题,凯撒密码

从指定的文件中读出原文,使用凯撒加密算法加密,将原文和密文分别输出到屏幕上,移位数位k,k从键盘输入。(指定文件在D盘)测试输入3则输出明文:↵Beijing... 从指定的文件中读出原文,使用凯撒加密算法加密,将原文和密文分别输出到屏幕上,移位数位k,k从键盘输入。(指定文件在D盘)
测试输入3
则输出

明文:↵

Beijing Technology and Business University (BTBU) is a key state-run university with comprehensive disciplines covering Arts, Sciences, Engineering, Law, Economics, History, Philosophy and Management.↵

密文:↵

Ehlmlqj Whfkqrorjb dqg Exvlqhvv Xqlyhuvlwb (EWEX) lv d nhb vwdwh-uxq xqlyhuvlwb zlwk frpsuhkhqvlyh glvflsolqhv fryhulqj Duwv, Vflhqfhv, Hqjlqhhulqj, Odz, Hfrqrplfv, Klvwrub, Sklorvrskb dqg Pdqdjhphqw.↵
展开
 我来答
户哲茂5B
2017-06-29 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:131万
展开全部
#include <stdio.h>
char s[]="Beijing Technology and Business University (BTBU) is a key state-run university with comprehensive disciplines covering Arts, Sciences, Engineering, Law, Economics, History, Philosophy and Management.";
void fun(char *s,int n)
{
int i=0;
while(s[i]!=0)
{
if(s[i]<='z'&&s[i]>='a')
{
s[i] += n;
if(s[i]>'z') s[i] -=24;
}
else if(s[i]<='Z'&&s[i]>='A')
{
s[i] += n;
if(s[i]>'Z') s[i] -=24;
}
i++;
}
}
void main()
{
fun(s,3);
puts(s);
}

逆流寻迹
2017-07-26 · TA获得超过252个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:74.3万
展开全部
public static void encrypt(String str, int k) {
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch >= 'A' && ch <= 'Z') {
                ch = (char) (ch + k % 26);
                if (ch > 'Z') {
                    ch = (char) (ch - 26);
                }
            }
            if (ch >= 'a' && ch <= 'z') {
                ch = (char) (ch + k % 26);
                if (ch > 'z') {
                    ch = (char) (ch - 26);
                }
            }
            System.out.print(ch);
        }
    }

输入字符串和位移位数,直接输出编码加密后的字符串,或者也可以自己改成将加密后的字符串返回。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-12-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6264万
展开全部
#include<stdio.h>
#include<ctype.h>

int main()
{
int i,k=0;
char s[1000];

scanf("%d%*c", &k);

gets(s);
for( i=0;s[i]!='\0';i++ )
{
if ( s[i]>='a' && s[i]<='z' )
{
s[i] += k ;
if ( s[i] > 'z' )
s[i]='a'+(s[i]-'z'-1) ;
}
else if ( s[i]>='A' && s[i]<='Z' )
{
s[i] += k ;
if ( s[i] > 'Z' )
s[i]='A'+(s[i]-'Z'-1) ;
}
printf("%c", s[i] );
}
printf("\n");
return 0;
}
追问
我是要从指定文件中读出来,指定文件在d盘
追答
FILE *fp;
fp=fopen("d:/text.txt", "r" );
if ( fp )
{
    while( fgets(s,sizeof(s),fp) )
{
for( i=0;s[i]!='\0';i++ )
{
if ( s[i]>='a' && s[i]<='z' )
{
s[i] += k ;
if ( s[i] > 'z' )
s[i]='a'+(s[i]-'z'-1) ;
}
else if ( s[i]>='A' && s[i]<='Z' )
{
s[i] += k ;
if ( s[i] > 'Z' )
s[i]='A'+(s[i]-'Z'-1) ;
}
printf("%c", s[i] );
}
}
fclose(fp);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式