看起来很简单,我已经起草了代码来完成它,但是在我的生活中不能理解为什么它不起作用。
character(len=120) ww
ww=" first_word 2nd_word "
call locfw(ww,120,i1,i2)
write(6,*) ww(i1:i2)
stop
end
SUBROUTINE LOCFW(WW,NN,I1,I2)
!Returns location (I1:I2) of first word in string WW of length NN.
IMPLICIT NONE
INTEGER, INTENT(IN) :: NN
INTEGER, INTENT(OUT) :: I1,I2
CHARACTER(LEN=NN),INTENT(IN) :: WW
INTEGER I
DO I=1,NN
IF(WW(I).NE." ") THEN
I1=I
EXIT
ENDIF
ENDDO
DO I=I1+1,NN
IF(WW(I).EQ." ") THEN
I2=I-1
EXIT
ENDIF
ENDDO
RETURN
END
可能是一些简单的错误,但是虽然我已经在Fortran中编码多年,但我对处理字符的知识却非常有限。 (通常关注数字。)