【问题标题】:Replace leading spaces in string with zero in Fortran在 Fortran 中用零替换字符串中的前导空格
【发布时间】:2014-10-10 13:05:23
【问题描述】:

我想以yyyymm这种格式打印一系列时间段,例如。 19700106001980010600 所以我将输入作为字符串并将子字符串转换为整数,将其递增并再次将其转换为字符串。

我将这些字符串变量连接为fln=yyyy//mm,但我的输出有前导空格。我使用了空白描述符,但它也不起作用:

我的输出是1971 1,但我需要197101。如果是两位数的月份,则没有问题。

我怎样才能在月份使用前导零而不是前导空白?

部分代码为:

integer:: m,j,n,k
character(len=12)::fln,st,et
character(len=4)::yy,tt
character(len=2)::mm,dd

 do j=0,k
 ma(j)=m+j
 write(mm,'(BZ,I2)')ma(j)
 fln=yy//mm
 write(19,121)fln
 121 format(A12)

【问题讨论】:

  • 始终使用标签fortran 并且仅在必要时添加版本以区分您的问题是具体的。例如,您不能使用 Fortran 2008,而只能使用 Fortran 90。

标签: fortran fortran90


【解决方案1】:

尝试替换

write(mm,'(BZ,I2)')ma(j)

write(mm,'(I2.2)')ma(j)

然后查阅有关使用I 编辑Iw.m 形式的描述符的Fortran 参考资料。 BZ 编辑控件描述符仅对输入有用。

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2015-08-03
    • 2021-06-11
    相关资源
    最近更新 更多