program abc123
implicit none
character(len=10)::a(5)=(/"afdfdfsd","asfdsfgdg","gfgergdfd","fwegsddfd","fdsgergfs"/) !需要提取字符串的数组
character(len=2)::b(5)
character(len=10)::x
integer::i
do i=1,5
x=a(i)
b(i)=x(1:2) !提取前两位
end do
do i=1,5
write(*,*)b(i)
enddo
stop
end
结果是
在Fortran语言里,如果一串字符存储在变量A中,那么取出A中的第i至j段的子字符串,写成A(i:j). 比如你的例子,
program main
implicit none
character*10 a(2,2)
integer i, j
a = reshape( (/'2010', '2012', '2013', '2014'/),(/2,2/))
do i = 1, 2
print *, (a(i,j),j=1,2)
end do
print *, ''
do i = 1, 2
do j = 1, 2
print *, a(i,j)(1:2)
end do
end do
end program main
以上.
在Fortran语言里,如果一串字符存储在变量A中,那么取出A中的第i至j段的子字符串,写成A(i:j). 比如你的例子