for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/11 09:45:33
for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~
xRn@Pd.`~OHs*J-JoRA @6M"(gvmJ{ɕ_mJZ^xOlIQҖcE(+tFSVچ&aGG@y;5Z ;N|tA}c7p9aĠn9d*u^ r>#"Q 8u>^yzlX~P k ~v[0>=,P\75281}d М-{#%*h 'ͼUC/h*tÝR :mAV⡒ >w 3xzpe!3+ һC[N4"zAK ^YUYJuxKs`6M]ktq-*^|sB9Vވb&1ol1

for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~
for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }
凯撒密码的部分,请详解下for语句里头每一步的意思~

for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~
a[i]是一个字符数组.K是一个变量,也可能是预先定义好的常变量,就是说b[i](应该是输出字符串 ) 的字符是在既定的a[i]的基础上偏移一个数值.例如K=1,那么,b[i]=a[i]+1,就是如果a[1]='a',那么b[1]='b',如果a[1]='z',则a[1]='a';如此类推,同理,如果K=2,则如果a[1]='a',那么b[1]='c',如果a[1]='z',则a[1]='b';如此类推 .a[i]-'a'就是获得a[i]的在26字母表中的位置,中间主要执行的是%26,也就是模26运算,此运算是防止超出范围的限制,因为如果a[i]='z',k=1,那么(a[i]-'a'+K)+'a'= 'z'+1,超出字母表范围.