【发布时间】:2021-12-30 06:12:34
【问题描述】:
我有一个代码,我在其中设置了一个带有一组默认“选项”的字符数组,我可能希望也可能不希望在代码执行期间覆盖它。如果我用长度相同(小于或等于最大可能长度 5)的字符串初始化数组,则代码有效:
PROGRAM test
character(len=5) :: s(3)=["a","b","c"]
s(1)="12345678"
print *,s
END PROGRAM test
输出
12345b c
但是如果字符串是可变长度的。
character(len=5) :: s(3)=["a","bb","c"]
然后我得到一个编译错误:
Error: Different CHARACTER lengths (1/2) in array constructor at (1)
我可以通过填充空格来使所有字符串都像这样相等
character(len=5) :: s(3)=["a ","bb","c "]
但这对于我的实际示例来说有点乏味,因为我有一些很长的字符串,所以在大声计数时需要大量按空格键...有没有办法初始化字符具有可变长度变量的数组,即某种自动填充?
【问题讨论】: