我是本站AI,高效的帮你回答各种问题,你可以通过以下方法来召唤我:
- 发帖时艾特我
- 评论时艾特我
- 回复我的评论
你可以让我帮你写代码、写文章、写诗、写简历、解题等相关操作。
注意:仅用于学术讨论,禁止询问发布任何违法内容。
那么,就让我们愉快的开始吧!
本帖已锁,提问问题请到 提问 标签下发帖,发帖时艾特我就会回复你。
我是本站AI,高效的帮你回答各种问题,你可以通过以下方法来召唤我:
你可以让我帮你写代码、写文章、写诗、写简历、解题等相关操作。
注意:仅用于学术讨论,禁止询问发布任何违法内容。
那么,就让我们愉快的开始吧!
本帖已锁,提问问题请到 提问 标签下发帖,发帖时艾特我就会回复你。
zhuchunshu 发表 1年前
@ai runpod.cn 程序员论坛网站 根据域名和我给的关键词帮我取个...
文案
网站名称:RunCoders
RunCoders是一个专为程序员设计的交流论坛。它汇集了众多优秀的程序员,一起分享技术经验、编程知识、技术架构、最新趋势信息等,以及进行技术讨论等功能,帮助构建一个完善的程序员学习体系,可以让绝大多数程序员受益。我们拥有令人兴奋的聊天室,以及定期举办线上技术分享工作坊,不定时推出系列教程,来帮助每一位热情的程序员。只要有一颗热心的程序员之心,就可以和其他优秀的开发者一起受益,让RunCoders成为的学习讨论的首选平台!
zongiz 发表 1年前
@ai 输入一串字符, 用C语言编程利用“Vigenere密码法”加密解密...
//定义26个字母编号 int cIndex[26] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26}; char character[26] = "abcdefghijklmnopqrstuvwxyz";
int main(){ char plainText[] = "they will arrive tomorrow"; char key[] = "monday"; char cipher[100] = { 0 };
//获取明文的长度
int pLen = strlen(plainText);
//字母序号
int mIndex[pLen];
int kIndex[strlen(key)];
int n = 0;
//输出明文
printf("Source:%s\n",plainText);
printf("Key :%s\n",key);
//将密钥中的字母编号
for (int i=0;i<strlen(key);i++)
{
for (int j=0;j<26;j++)
{
if (key[i] == character[j])
{
kIndex[i] = cIndex[j];
}
}
}
//将明文字母编号
for (int i=0;i<pLen;i++)
{
for (int j=0;j<26;j++)
{
if (plainText[i] == character[j])
{
mIndex[i] = cIndex[j];
}
}
}
//加密
for (int i=0;i<pLen;i++)
{
int temp = (mIndex[i] + kIndex[n]) % 26;
if (temp < 0)
{
temp += 26;
}
cipher[i] = character[temp];
//重新开始
n++;
if (n == strlen(key))
{
n = 0;
}
}
//输出密文
printf("Encrypt:%s\n",cipher);
int cLen = strlen(cipher);
//解密
for (int i=0;i<cLen;i++)
{
int temp = mIndex[i] - kIndex[n];
if (temp < 0)
{
temp += 26;
}
cipher[i] = character[temp];
n++;
if (n == strlen(key))
{
n = 0;
}
}
//输出解密后的明文
printf("Decrypt:%s\n",cipher);
return 0;
}
zongiz 发表 1年前
@ai 输入一串字符, 用C语言编程利用“Vigenere密码法”加密解密...
zongiz 发表 1年前
输入一串字符, 用C语言编程利用“Vigenere密码法”加密解密 明文...
zongiz 发表 1年前
输入一串字符, 用C语言编程利用“Vigenere密码法”加密解密 明文...
//用变量定义明文和密钥 char ptext[30]="they will arrive tomorrow"; char key[30]="Monday";
//打印字母映射数字 void printMap() { int i; char alph[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("字母映射数字如下:\n");
for(i=0;i<26;i++){
printf("%c<----->%d\n",alph[i],i);
}
}
//加密 char encrypt(){ char ab; int i,k=0,lenk,lenp;
lenk=strlen(key);
lenp=strlen(ptext);
printMap();
printf("明文是:%s\n", ptext); //打印明文
printf("密钥是:%s\n", key); //打印密钥
printf("密文是:"); //打印密文文本框
for(i=0;i<lenp;i++){
if (ptext[i]==' ') //判断明文中是否有空格
printf(" ");
else{
ab=(int)(ptext[i]-'A'+key[k]-'A')%26; //将字母映射成0-25,用明文字母与密钥字母之和除26取余取值
printf("%c",ab+'A'); //输出密文
}
k++; //改变密钥字母
if (k==lenk) //当密钥结束时从头开始
k=0;
}
printf("\n");
}
//解密 char decrypt(){ char ab; int i,k=0,j,lenk,lenp;
lenk=strlen(key);
lenp=strlen(ptext);
printMap();
printf("密文是:%s\n", ptext); //打印密文
printf("密钥是:%s\n", key); //打印密钥
printf("明文是:"); //打印明文文本框
for(i=0;i<lenp;i++){
if (ptext[i]==' ')
printf(" ");
else{
j=(int)(ptext[i]-'A'-(key[k]-'A')+26)%26; //将字母映射成0-25,用密文字母与密钥字母之差除26取余取值
printf("%c",j+'A'); //输出明文
}
k++; //改变密钥字母
if (k==lenk) //当密钥结束时从头开始
k=0;
}
printf("\n");
system("cls");
}
int main(){
while(1){
printf("-------------- Vigenere加解密 --------------\n");
printf("1--Vigenere加密\n");
printf("2--Vigenere解密\n");
printf("3--退 出\n");
char ch;
scanf("%c",&ch);
switch(ch){
case '1': encrypt(); break;
case '2': decrypt(); break;
case '3': return 0;
}
}
return 0;
}
AI 发表 1年前
include <stdio.h> include <string.h> inclu...
发表 :1年前
include "stdio.h"
int main() { char mm[]="theywillarrivetomorrow",my[]="monday"; int o[99],c,d,n,a,b,i,e,f,r,l,s,q[99],p[99]; a=strlen(mm); c=strlen(my); b=0,d=0,r=0,s=0; l=0; for(i=0; i<a; i++) { f=((int)mm[i]+o[i]) - ((int)my[b]+p[i]); if(f>26) q[r]=f-26; if(f<26) q[r]=f; printf("%5d",q[r]); r++; e++; if(e%6==0) printf("\n"); if(r==a) break; } return 0; }