如何从字符串中删除字符?Fortran:从字符串中删除字符
例如,我有一个名为'year'的字符串,我想从4个字符更改为2个字符。它的定义,像这样:
character(4) :: year = "2011"
如何截断字串2个字符,所以,与其year = "2011"
,它是year = "11"
?
如何从字符串中删除字符?Fortran:从字符串中删除字符
例如,我有一个名为'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 "
您必须将值分配到只能容纳两个字符的变量。
我认为这是year(3:4)
但不要引用我就可以了;)
使用以下命令:
trim(year(3:4))
摆脱了拖尾和先行空白的,你可以用装饰(adjustl(串)) – 2011-01-11 16:27:12
@Zhenya这部分是真实的。如果您使用'trim',则不会删除空白,您只需显示/处理非空白字符。如果你知道你的字符串的'有趣'部分有多长时间,你也可以简单地访问相关的子字符串。但是当OP询问关于将变量设置为“11”时,我完全认为他不想让这些空白留下来。 – canavanin 2011-01-11 16:48:53