显然无法将字符串附加到另一个字符串

tag*_*ack 4 string fortran append

我有一个非常简单的问题,我还没有找到答案.

有没有什么方法可以将一个角色(特别是一个空格)附加到已经在Fortran中初始化的角色?

显然地

CHARACTER(2000) :: result
result = ''
result = result // ' '
Run Code Online (Sandbox Code Playgroud)

不起作用.

Vla*_*r F 7

你想达到什么目的?当然它有效,但它没有多大用处.尝试上一个问题中已经建议的方法.特别要注意的是,所有字符串在最后一个非空格字符后都填充了空格,这非常重要!

'a'//' ' really produces  'a '
Run Code Online (Sandbox Code Playgroud)

result = result//' '
Run Code Online (Sandbox Code Playgroud)

生成一个2001字符串,然后在赋值时被截断,因此result最终会相同.

你可能想要

result = trim(result)//' '
Run Code Online (Sandbox Code Playgroud)

但它也没用,因为无论如何字符串都充满了空格.

如果要使变量更大,则必须使用:

character(:),allocatable:: result
result = ''  !now contains ' ' and has length 1
result = result//' ' !now contains '  ' and has length 2
Run Code Online (Sandbox Code Playgroud)

您必须在某些处理器上分配时启用重新分配.