我的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
。
他们需要一样吗?还是