根据字母顺序比较两个字符串(如abc
和bcd
)的正确方法是什么?是否有内置的命令来执行此操作?或者>
或.lt.
会毫无问题地完成工作吗?
内部关系运算符.lt.
和<
(以及"等于"one_answers"大于"的友元)确实可以用于比较字符变量。
我们看到了定义(Fortran 2018,10.1.5.5.1):
如果排序序列中该位置x1的字符值在x2的值之前,则字符操作数x1被认为小于x2
其中使用不同的相应字符串中的第一个字符部分进行比较。
排序序列告诉例如,'a'
是否先于'b'
。因此,如果将'abc'
与'bcd'
进行比较,则比较在'a'
与'b'
之间。
如果要比较的两个字符串的长度不同,则执行比较时,就好像在右边用空格(空格)填充较短的字符串,使其与较长的字符串的长度相同。这意味着当比较'ab'
和'abc'
时,我们看到'ab '
和'abc'
:'ab'<'abc'
当且仅当' '<'c'
。