for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 15:40:56
![for(i=0;a[i]!='\0';i++) { b[i]=(a[i]-'a'+K)%26+'a'; }凯撒密码的部分,请详解下for语句里头每一步的意思~](/uploads/image/z/3725144-8-4.jpg?t=for%28i%3D0%3Ba%5Bi%5D%21%3D%27%5C0%27%3Bi%2B%2B%29+%7B+b%5Bi%5D%3D%28a%5Bi%5D-%27a%27%2BK%29%2526%2B%27a%27%3B+%7D%E5%87%AF%E6%92%92%E5%AF%86%E7%A0%81%E7%9A%84%E9%83%A8%E5%88%86%2C%E8%AF%B7%E8%AF%A6%E8%A7%A3%E4%B8%8Bfor%E8%AF%AD%E5%8F%A5%E9%87%8C%E5%A4%B4%E6%AF%8F%E4%B8%80%E6%AD%A5%E7%9A%84%E6%84%8F%E6%80%9D%7E)
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,超出字母表范围.