簡體   English   中英

Fortran:從字符串中刪除字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM