回 帖 发 新 帖 刷新版面

主题:【求助】小弟编写一个加密程序时,有一处代码不认识,求鉴定

如上图所示string(i:i)其中(i:i)在下面程序中有何作用,在下面程序中去掉(i:i)的话,单输入一个字母结果是对的,但是一旦输入两个以上就错误了,所以肯定是不能少,但是这个(i:i)为什么会影响连续输入,(i:i)在这个程序中的作用是什么?求大侠解答
program max
implicit none

integer i
integer strlen
character(len=20) string

write(*,*) "string:"
read(*,*) string

strlen=len_trim(string)

do i=1,strlen
 string(i:i)=char(ichar(string(i:i))*2-80+5)
end do

write(*,"('encode:',a20)") string

end
留一个交流群:170502164

回复列表 (共3个回复)

沙发


1, char() 和ichar()是一对字符和相应ASCII码函数。
2, string(i:i),取字符串第i个字符的地址。

了解以上两点为,不难理解出现所述的现象。

板凳


谢谢,指教,可否加我QQ,小弟初学fortran,有些不懂之处,想问问你,QQ:411246079

3 楼

不客气。老老实实看一本书,多编程,多看别人编程,像本论坛。熟能生巧。

我来回复

您尚未登录,请登录后再回复。点此登录或注册