我正在嘗試編寫一個簡單的Fortran代碼,用於練習。它應該在一個範圍內乘以數字。每次,生成的產品都會轉換爲字符串,因爲我想查看它是否包含相同的數字。Fortran:整型字符串示例
我測試了將整數轉換爲字符串並鍵入字符串組件的方式,並且一切正常。然後,我需要比較字符串的組成部分,爲此我使用string(number:number)。但我無法讓代碼正確地做到這一點。
下面的代碼和輸出:
program test
implicit none
character(10) myString
character(1) a,b,c,d,e,f
integer::i,j,k
do i=900,901,1
j=900
k=i*j
write(*,*)'k =', k
write(myString,'(i10)') k
write(*,*)'myString = ', myString
a=myString(1:1)
b=myString(2:2)
c=myString(3:3)
d=myString(4:4)
e=myString(5:5)
f=myString(6:6)
print*,a,b,c,d,e,f
if (d==f) then
print*,'hobla'
else
print*,'fobla'
end if
end do
stop
end program test
所以我定義的字符:A,B,C,d,E,F爲包含字符串的部件。並使用myString(i:i)來定位每個組件並將其存儲在字符a,b,c,d,e,f中的一箇中。 但似乎只有前兩個工作正常,其餘沒有被存儲!
輸出:
k = 810000
myString = 810000
81
fobla
k = 810900
myString = 810900
81
fobla
通知81.這是應該給予810000的第一次,並打印 「hobla」。並第二次給予810900並打印「fobla」。但是這沒有發生!
任何人都可以告訴我如何讓myString接受零字符?
我不明白。 'myString'確實有0,當你寫'(*,*)'myString =',myString'時,它正在打印它們。究竟是什麼問題? – tpg2114
是的,對不起。我真正的意思是字符a,b,c,d,e,f應該包含myString的組件。但只有a,b顯示其餘的被忽略。這就是它打印81的原因。我不確定這裏有什麼問題。 – stupidity