【发布时间】:2015-09-17 00:12:16
【问题描述】:
我有以下代码,但它不起作用:
CHARACTER*260 xx, yy, zz
xx = 'A'
yy = 'B'
zz = xx // yy
当我在 Visual Studio 中调试我的代码时,
- 变量
xx包含“A” - 变量
yy包含“B” - 变量
zz包含'A'
为什么zz 不包含“AB”?
【问题讨论】:
标签: fortran string-concatenation
我有以下代码,但它不起作用:
CHARACTER*260 xx, yy, zz
xx = 'A'
yy = 'B'
zz = xx // yy
当我在 Visual Studio 中调试我的代码时,
xx 包含“A”yy 包含“B”zz包含'A'为什么zz 不包含“AB”?
【问题讨论】:
标签: fortran string-concatenation
您将 xx 定义为 260 个字符长。分配较短的字符文字将导致用空格填充。因此,xx 包含 A 和 259 个空格。 yy 包含 B 和 259 个空格。所以连接的字符串将是'A' + 259 个空格 + 'B' + 259 个空格,总共 520 个字符。
由于zz 的长度只有 260 个字符,其余部分被裁剪。
你想要做的事情是通过
zz = trim(xx) // trim(yy)
trim() 从字符串中删除尾随空格。
【讨论】: