わかりました、次の Fortran 90 コードで多くの問題が発生しています。プログラム テスターは、input という文字配列を作成し、すべてのエントリを空白文字に初期化してから、ユーザーから文字列を取得して入力に格納する必要があります。getLength 関数は、スペースではない関数内の最後のインデックスを返すことになっています。したがって、ユーザーが文字列「こんにちは、お元気ですか?」を入力した場合、getLength(input) は 11 を返す必要があります。これは、指定された配列の末尾から開始し、スペース以外の最初の文字が発生した場所をマークすることで機能するはずです。 . 実際に実行しようとすると、gfortran は次のように述べています。修正する必要がありますか? 前もって感謝します!
program tester
implicit none
character(len = 1000) :: input
external getLength
do i = 1, 1000
input(i) = " "
end do
read *, input
print *, getLength(input)
end program
integer function getLength(array) result (length)
character(len=1000) :: array
integer :: lenTemp = 1000
do while (array(lenTemp:lenTemp) == ' ')
lenTemp = lenTemp - 1
end do
length = lenTemp
end function