2011-01-11 308 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))