一个加密问题让输入密文返回明文 ,加密的办法是让字母在字母表中后移相同位(例如ab后移3位得到明文就是d
问题描述:
一个加密问题让输入密文返回明文 ,加密的办法是让字母在字母表中后移相同位(例如ab后移3位得到明文就是d
我的程序如下高手帮我看看怎么不能得到效果(输入明文和后移数目)
#include
main()
{
int i,j,m,n;
char str[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
printf("please input the words you want to get it encrypt\n");
char str1[30];
scanf("%s",str1);
printf("please enter the namber you want to move\n ");
scanf("%d",&m);
n=strlen(str1);
for(i=0;i
答
for语句应该只有一个循环吧,不要想得太复杂
for(i=0;i='z')
{
*(str1+i)=*(str+i)+m-26;
}
else
{
*(str1+i)=*(str+i)+m;
}我明白你的意思了,可是我想知道我的思路是从对比两个数组中的数考虑的为什么不正确,而你的意思是'a'到'z'之间的字母的ASCII值连续来考虑的str1这个你有赋值么,先看清楚。scanf("%s",str1);if(m+j>=26){ *(str1+i)=*(str+j+m-26);}else{ *(str1+i)=*(str+j+m);}break;//这里少了break;写函数小心一点