如何获得可分配字符串的长度?

时间:2020-05-18 11:14:11

标签: fortran gfortran

我的IDE是:Code :: Blocks 20.03(编译器:mingw 9.2.0)

示例代码为:

program string_operation

implicit none

character(:), allocatable :: name_aa
character(*),   parameter :: name = '("abc123")'

allocate( character( len_trim( name ) ) :: name_aa )

write( name_aa, name )

print *, len_trim( name )
print *, len_stri( name_aa )
print *,           name
print *,           name_aa

contains

function len_stri( string_tmp ) result( data_tmp )

  implicit none

  character(*), intent( in ) :: string_tmp
  integer                    ::   data_tmp

  do data_tmp = len( string_tmp ), 1, -1

    if ( string_tmp( data_tmp : data_tmp ) .ne. " " ) return

  end do

end function len_stri

end program string_operation

控制台中的结果是: 10 6 '("abc123")' abc123

为什么name的长度为10,但分配后name_aa的长度为6。 他们需要一样吗?还是

0 个答案:

没有答案
相关问题