字符串连接不了?大佬们帮忙看看是啥问题
!=====================================! 整型或实型转换生字符,借助Fortran内部文件完成,
! 即将一个字符串变量当作一个内部文件看待;反之依然
!=====================================
program main
implicit none
character(len=40) :: aa,bb,cc='2007.00',CID
integer(kind=4) :: a
!...数字转换成字符串
a=2007
aa="2007"
!...整型转字符
write(bb,"(I4)") a !...a -> bb
CID = bb//aa//cc
write(*,*) TRIM(ADJUSTL(CID))
stop
end program main
结果只有bb输出来了,后面的aa和cc输出不来?
CID = trim(bb)//trim(aa)//trim(cc)
字符串本身长度是40,会在后面加一些空格,把空格去掉就行了 看看,字符串的故事:
http://string.w.fcode.cn/
如果你嫌每次都trim很麻烦,那么递延长度字符串,可能对你有帮助
http://diyanzifuchuan.w.fcode.cn/
Transpose 发表于 2021-12-13 21:26
字符串本身长度是40,会在后 ...
是这样,谢谢 fcode 发表于 2021-12-14 08:36
看看,字符串的故事:
http://string.w.fcode.cn/
如果你嫌每次都trim很麻烦,那么递延长度字符串,可能对 ...
雪球你推荐的文章太好了,但里面有一句话可能有歧义:
“此时我们就需要 AdjustL 函数,我们可以这样写: trim(AdjustL(s4)) , 或者 AdjustL(trim(s4)) 这两者的顺序无所谓,结果都是一样的。”
两者的结果好像并不一样:
character(len=12):: domain
open(123,file='output.txt')
domain = 'fcode.cn' ! 10 characters with 2 spaces ahead
write(123, *) 'adjustl(trim(domain)):',adjustl(trim(domain))
write(123, *) 'trim(adjustl(domain)):',trim(adjustl(domain))
print*,'length of adjustl(trim(domain)) is' ,len(adjustl(trim(domain)))
print*,'length of trim(adjustl(domain)) is',len(trim(adjustl(domain)))
end
感谢提醒,这里的确有些不严谨
页:
[1]