fortran的字符串处理,尤其是fortran77的字符串处理较弱。
且由于fortran77只能处理等长字符串,所以你的问题的后置空格是无法删除的,
只能删除前导以及中间的空格 !
实现方式是通过主、子程序共用变量地址(传址调用)实现,传入的为字符串变量,
子程序内部按单字节的字符数组处理。
character*50 a,b
a=' gfhgfhg 64567576 gfhgfhgf 54765 '
call trim(a,b)
write(*,*)b
a=' jhjh QWE '
call trim(a,b)
write(*,*)b
stop
end
subroutine trim(a,b)
character*1 a(50),b(50)
integer i,k
do 5 i=1,50
b(i)=' '
5 continue
k=1
do 10 i=1,50
if (a(i).ne.' ') then
b(k)=a(i)
k=k+1
endif
10 continue
return
end