在Fortran中比较两个字符串



根据字母顺序比较两个字符串(如abcbcd)的正确方法是什么?是否有内置的命令来执行此操作?或者>.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'

最新更新