在Fortran中比较两个字符串

10

如何以字母顺序比较两个字符串,例如abcbcd?是否有内置命令可以完成此操作?或者>.lt.是否可以无误地完成工作?

1个回答

7
内在的关系运算符 .lt.< (以及“等于”和“大于”)确实可以用于比较字符变量。
我们可以看到定义(Fortran 2018,10.1.5.5.1):
“如果该位置处 x1 的字符值在排序序列中位于 x2 的值之前,则认为字符操作数 x1 小于 x2。”
其中比较是针对不同字符串中相应字符串的第一个字符部分进行的。
“排序序列”告诉您例如 'a' 是否在 'b' 之前。 因此,如果将 'abc''bcd' 进行比较,则比较在 'a''b' 之间进行。
如果要比较的两个字符串长度不同,则执行比较时,将更短的字符串填充右侧空格以使其与更长的字符串具有相同的长度。 这意味着在比较 'ab''abc' 时,我们查看 'ab ''abc' :仅当 ' '<'c' 时,'ab'<'abc'

我明白了,那么 abcab 的比较呢? - Huzo
有一个概念叫做大小写等。也就是说,“fred”是否意味着与“Frederick”相同? - Holmz
@Holmz 大写被认为是小写的“大于”,例如'a' > 'A' - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接