fortran fortran中文资料网
手气不错
Article

058.characterAlignment_ADJUSTL与ADJUSTR

2026年9月30日基础级

adjustl把字符内容左移并在右侧补空格。adjustr把内容右移并在左侧补空格。都保持原字符值的长度和kind。

适合用于整理定宽表格、数值文本和文件字段的场景。只调整首尾空格分布的情况,不改变字符内部的空格。

语法结构

leftAligned = adjustl(text)
rightAligned = adjustr(text)
  • adjustl移除开头连续空格,并在末尾补入相同数量的空格。
  • adjustr移除末尾连续空格,并在开头补入相同数量的空格。
  • 返回值与实参长度相同;函数不会直接修改实参,除非把结果重新赋回变量。

本文代码

! 在固定宽度字段内左右对齐测量值文本。
program characterAlignmentDemo
  implicit none

  character(len=12) :: field
  field = "   42.7"
  write (*, "(A,A,A)") "原字段:  |", field, "|"
  write (*, "(A,A,A)") "左对齐:  |", adjustl(field), "|"
  write (*, "(A,A,A)") "右对齐:  |", adjustr(field), "|"
  print "(A,I0)", "对齐后长度仍为:", len(adjustl(field))
end program characterAlignmentDemo

编译运行

(base) hong@hongdeMacBook-Pro 058.characterAlignment % gfortran -Wall -Wextra -std=f2018 exampleCharacterAlignment.f90 -o characterAlignmentDemo
(base) hong@hongdeMacBook-Pro 058.characterAlignment % ./characterAlignmentDemo
原字段:  |   42.7     |
左对齐:  |42.7        |
右对齐:  |        42.7|
对齐后长度仍为:12

现象分析

field共有12个位置。初始内容:3个前空格;4个可见字符42.7;5个尾空格。

adjustl把3个前空格移到尾部。结果为:42.7、8个空格。

adjustr把5个尾部空格移到前面。结果为:8个空格、42.7。

两次对齐都返回长度12的字符值,因此len(adjustl(field))仍为12。对齐只改变了空格位置,为改变字段宽度。

核心知识点

  • adjustl左对齐,adjustr右对齐。
  • 两者保持字符长度和kind不变。
  • 函数返回新字符值,不会自动改写原变量。
  • 内部空格不会被删除或重新排列。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注