[英]Fortran: remove characters from a string
如何從字符串中刪除字符?
例如,我有一個名為“year”的字符串,我想將其從 4 個字符更改為 2 個字符。 它是這樣定義的:
character(4) :: year = "2011"
如何將字符串截斷為 2 個字符,而不是year = "2011"
,而是year = "11"
?
你確實可以使用year(3:4)
; 但是,您的字符串仍然是四個字符長,即它將包含您的兩位數字和兩個空格。 為了說明這一點,這里有一個例子:
program trunc
character(len=4) :: year = "2011"
write(*,'(A,A,A)') '..', year, '..'
year = year(3:4)
write(*,'(A,A,A)') '..', year, '..'
end program trunc
這打印
..2011..
..11 ..
要真正獲得"11"
而不是"11 "
您必須將該值分配給一個只能容納兩個字符的變量。
使用以下命令:
trim(year(3:4))
我認為是year(3:4)
但不要引用我的話;)
您可以使用year(3:4)
並將year
聲明為延遲長度字符以避免尾隨空格。 這是 Fortran 2003 的一項功能,因此您需要一個與之兼容的編譯器,並且您無法在聲明中初始化變量。
示例:
program deflen
implicit none
character(len=:), allocatable :: year
year = '2011'
write(*,'(A,A,I0)') year,'_LEN=', LEN(year)
year = year(3:4)
write(*,'(A,A,I0)') year,'_LEN=', LEN(year)
end program deflen
這打印:
2011_LEN=4
11_LEN=2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.