2011-01-11 502 views
3

如何從字符串中刪除字符?Fortran:從字符串中刪除字符

例如,我有一個名爲'year'的字符串,我想從4個字符更改爲2個字符。它的定義,像這樣:

character(4) :: year = "2011"

如何截斷字串2個字符,所以,與其year = "2011",它是year = "11"

回答

2

事實上,你可以使用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 "您必須將值分配到只能容納兩個字符的變量。

+0

擺脫了拖尾和先行空白的,你可以用裝飾(adjustl(串)) – 2011-01-11 16:27:12

+0

@Zhenya這部分是真實的。如果您使用'trim',則不會刪除空白,您只需顯示/處理非空白字符。如果你知道你的字符串的'有趣'部分有多長時間,你也可以簡單地訪問相關的子字符串。但是當OP詢問關於將變量設置爲「11」時,我完全認爲他不想讓這些空白留下來。 – canavanin 2011-01-11 16:48:53

0

我認爲這是year(3:4)但不要引用我就可以了;)

0

使用以下命令:

trim(year(3:4))